Merge "Import translations. DO NOT MERGE" into jb-ub-mail-ur10
diff --git a/Android.mk b/Android.mk
index 84f7b45..4c1d85c 100644
--- a/Android.mk
+++ b/Android.mk
@@ -18,7 +18,7 @@
chips_dir := ../../../frameworks/ex/chips/res
#Include res dir from photoviewer
-photo_dir := ../../../frameworks/opt/photoviewer/res
+photo_dir := ../../../frameworks/opt/photoviewer/res ../../../frameworks/opt/photoviewer/activity/res
res_dirs := res $(chips_dir) $(photo_dir)
diff --git a/res/drawable-hdpi/btn_default_disabled_focused_holo_light.9.png b/res/drawable-hdpi/btn_default_disabled_focused_holo_light.9.png
new file mode 100644
index 0000000..735bcb8
--- /dev/null
+++ b/res/drawable-hdpi/btn_default_disabled_focused_holo_light.9.png
Binary files differ
diff --git a/res/drawable-hdpi/btn_default_disabled_holo_light.9.png b/res/drawable-hdpi/btn_default_disabled_holo_light.9.png
new file mode 100644
index 0000000..b5a25f7
--- /dev/null
+++ b/res/drawable-hdpi/btn_default_disabled_holo_light.9.png
Binary files differ
diff --git a/res/drawable-hdpi/btn_default_focused_holo_light.9.png b/res/drawable-hdpi/btn_default_focused_holo_light.9.png
new file mode 100644
index 0000000..6555635
--- /dev/null
+++ b/res/drawable-hdpi/btn_default_focused_holo_light.9.png
Binary files differ
diff --git a/res/drawable-hdpi/btn_default_normal_holo_light.9.png b/res/drawable-hdpi/btn_default_normal_holo_light.9.png
new file mode 100644
index 0000000..3367a76
--- /dev/null
+++ b/res/drawable-hdpi/btn_default_normal_holo_light.9.png
Binary files differ
diff --git a/res/drawable-hdpi/btn_default_pressed_holo_light.9.png b/res/drawable-hdpi/btn_default_pressed_holo_light.9.png
new file mode 100644
index 0000000..d9ead96
--- /dev/null
+++ b/res/drawable-hdpi/btn_default_pressed_holo_light.9.png
Binary files differ
diff --git a/res/drawable-hdpi/caret_grey.9.png b/res/drawable-hdpi/caret_grey.9.png
new file mode 100644
index 0000000..e59a5df
--- /dev/null
+++ b/res/drawable-hdpi/caret_grey.9.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_attach_doc.png b/res/drawable-hdpi/ic_attach_doc.png
deleted file mode 100644
index ecc92f1..0000000
--- a/res/drawable-hdpi/ic_attach_doc.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_attach_event.png b/res/drawable-hdpi/ic_attach_event.png
deleted file mode 100644
index 10930db..0000000
--- a/res/drawable-hdpi/ic_attach_event.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_attach_excel.png b/res/drawable-hdpi/ic_attach_excel.png
deleted file mode 100644
index 4f34b54..0000000
--- a/res/drawable-hdpi/ic_attach_excel.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_attach_pdf.png b/res/drawable-hdpi/ic_attach_pdf.png
deleted file mode 100644
index 858e846..0000000
--- a/res/drawable-hdpi/ic_attach_pdf.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_attach_pic.png b/res/drawable-hdpi/ic_attach_pic.png
deleted file mode 100644
index f787812..0000000
--- a/res/drawable-hdpi/ic_attach_pic.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_attach_slide.png b/res/drawable-hdpi/ic_attach_slide.png
deleted file mode 100644
index 8f8f71e..0000000
--- a/res/drawable-hdpi/ic_attach_slide.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_attach_various.png b/res/drawable-hdpi/ic_attach_various.png
deleted file mode 100644
index 91cf56c..0000000
--- a/res/drawable-hdpi/ic_attach_various.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_attach_video.png b/res/drawable-hdpi/ic_attach_video.png
deleted file mode 100644
index 96b5df4..0000000
--- a/res/drawable-hdpi/ic_attach_video.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_attach_video_holo_light.png b/res/drawable-hdpi/ic_attach_video_holo_light.png
deleted file mode 100644
index 6073be1..0000000
--- a/res/drawable-hdpi/ic_attach_video_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_carrot_holo.9.png b/res/drawable-hdpi/ic_carrot_holo.9.png
deleted file mode 100644
index d7d6502..0000000
--- a/res/drawable-hdpi/ic_carrot_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_edit_holo_dark.png b/res/drawable-hdpi/ic_edit_holo_dark.png
deleted file mode 100644
index 8fc5df1..0000000
--- a/res/drawable-hdpi/ic_edit_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_forward_holo_dark.png b/res/drawable-hdpi/ic_forward_holo_dark.png
deleted file mode 100644
index 1f1349d..0000000
--- a/res/drawable-hdpi/ic_forward_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_archive_holo_light.png b/res/drawable-hdpi/ic_menu_archive_holo_light.png
index de47d18..4176961 100644
--- a/res/drawable-hdpi/ic_menu_archive_holo_light.png
+++ b/res/drawable-hdpi/ic_menu_archive_holo_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_compose_normal_holo_light.png b/res/drawable-hdpi/ic_menu_compose_normal_holo_light.png
index b590822..96c83b4 100644
--- a/res/drawable-hdpi/ic_menu_compose_normal_holo_light.png
+++ b/res/drawable-hdpi/ic_menu_compose_normal_holo_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_folders_holo_light.png b/res/drawable-hdpi/ic_menu_folders_holo_light.png
deleted file mode 100644
index 21a10b0..0000000
--- a/res/drawable-hdpi/ic_menu_folders_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_mark_read_holo_light.png b/res/drawable-hdpi/ic_menu_mark_read_holo_light.png
index e2f898c..ab88cfb 100644
--- a/res/drawable-hdpi/ic_menu_mark_read_holo_light.png
+++ b/res/drawable-hdpi/ic_menu_mark_read_holo_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_mark_unread_holo_light.png b/res/drawable-hdpi/ic_menu_mark_unread_holo_light.png
index d8d8f28..c243bc9 100644
--- a/res/drawable-hdpi/ic_menu_mark_unread_holo_light.png
+++ b/res/drawable-hdpi/ic_menu_mark_unread_holo_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_moreoverflow_normal_holo_light.png b/res/drawable-hdpi/ic_menu_moreoverflow_normal_holo_light.png
new file mode 100644
index 0000000..3d99c45
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_moreoverflow_normal_holo_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_move_to_holo_light.png b/res/drawable-hdpi/ic_menu_move_to_holo_light.png
index 63d1186..7fe7de8 100644
--- a/res/drawable-hdpi/ic_menu_move_to_holo_light.png
+++ b/res/drawable-hdpi/ic_menu_move_to_holo_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_search_holo_light.png b/res/drawable-hdpi/ic_menu_search_holo_light.png
index 1cb61fa..898adf1 100644
--- a/res/drawable-hdpi/ic_menu_search_holo_light.png
+++ b/res/drawable-hdpi/ic_menu_search_holo_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_trash_holo_light.png b/res/drawable-hdpi/ic_menu_trash_holo_light.png
index 47676f0..7b2be66 100644
--- a/res/drawable-hdpi/ic_menu_trash_holo_light.png
+++ b/res/drawable-hdpi/ic_menu_trash_holo_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_notification_multiple_mail_holo_dark.png b/res/drawable-hdpi/ic_notification_multiple_mail_holo_dark.png
index c4f3648..a733c2a 100644
--- a/res/drawable-hdpi/ic_notification_multiple_mail_holo_dark.png
+++ b/res/drawable-hdpi/ic_notification_multiple_mail_holo_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_remove_label.png b/res/drawable-hdpi/ic_remove_label.png
index 9829f47..b3be853 100644
--- a/res/drawable-hdpi/ic_remove_label.png
+++ b/res/drawable-hdpi/ic_remove_label.png
Binary files differ
diff --git a/res/drawable-hdpi/spinner_ab_default_holo_light.9.png b/res/drawable-hdpi/spinner_ab_default_holo_light.9.png
deleted file mode 100644
index d281adb..0000000
--- a/res/drawable-hdpi/spinner_ab_default_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/spinner_ab_disabled_holo_light.9.png b/res/drawable-hdpi/spinner_ab_disabled_holo_light.9.png
deleted file mode 100644
index 4215396..0000000
--- a/res/drawable-hdpi/spinner_ab_disabled_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/spinner_ab_focused_holo_light.9.png b/res/drawable-hdpi/spinner_ab_focused_holo_light.9.png
deleted file mode 100644
index f8d619b..0000000
--- a/res/drawable-hdpi/spinner_ab_focused_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/spinner_ab_pressed_holo_light.9.png b/res/drawable-hdpi/spinner_ab_pressed_holo_light.9.png
deleted file mode 100644
index 6c22e22..0000000
--- a/res/drawable-hdpi/spinner_ab_pressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/btn_default_disabled_focused_holo_light.9.png b/res/drawable-mdpi/btn_default_disabled_focused_holo_light.9.png
new file mode 100644
index 0000000..d3ea4e5
--- /dev/null
+++ b/res/drawable-mdpi/btn_default_disabled_focused_holo_light.9.png
Binary files differ
diff --git a/res/drawable-mdpi/btn_default_disabled_holo_light.9.png b/res/drawable-mdpi/btn_default_disabled_holo_light.9.png
new file mode 100644
index 0000000..9fdc75e
--- /dev/null
+++ b/res/drawable-mdpi/btn_default_disabled_holo_light.9.png
Binary files differ
diff --git a/res/drawable-mdpi/btn_default_focused_holo_light.9.png b/res/drawable-mdpi/btn_default_focused_holo_light.9.png
new file mode 100644
index 0000000..9596ba9
--- /dev/null
+++ b/res/drawable-mdpi/btn_default_focused_holo_light.9.png
Binary files differ
diff --git a/res/drawable-mdpi/btn_default_normal_holo_light.9.png b/res/drawable-mdpi/btn_default_normal_holo_light.9.png
new file mode 100644
index 0000000..4ccfaac
--- /dev/null
+++ b/res/drawable-mdpi/btn_default_normal_holo_light.9.png
Binary files differ
diff --git a/res/drawable-mdpi/btn_default_pressed_holo_light.9.png b/res/drawable-mdpi/btn_default_pressed_holo_light.9.png
new file mode 100644
index 0000000..e489850
--- /dev/null
+++ b/res/drawable-mdpi/btn_default_pressed_holo_light.9.png
Binary files differ
diff --git a/res/drawable-mdpi/caret_grey.9.png b/res/drawable-mdpi/caret_grey.9.png
new file mode 100644
index 0000000..cd62abf
--- /dev/null
+++ b/res/drawable-mdpi/caret_grey.9.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_attach_doc.png b/res/drawable-mdpi/ic_attach_doc.png
deleted file mode 100644
index 325eb09..0000000
--- a/res/drawable-mdpi/ic_attach_doc.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_attach_event.png b/res/drawable-mdpi/ic_attach_event.png
deleted file mode 100644
index 3553b1a..0000000
--- a/res/drawable-mdpi/ic_attach_event.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_attach_excel.png b/res/drawable-mdpi/ic_attach_excel.png
deleted file mode 100644
index 5eaa304..0000000
--- a/res/drawable-mdpi/ic_attach_excel.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_attach_pdf.png b/res/drawable-mdpi/ic_attach_pdf.png
deleted file mode 100644
index f1c1aa9..0000000
--- a/res/drawable-mdpi/ic_attach_pdf.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_attach_pic.png b/res/drawable-mdpi/ic_attach_pic.png
deleted file mode 100644
index 9daf8de..0000000
--- a/res/drawable-mdpi/ic_attach_pic.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_attach_slide.png b/res/drawable-mdpi/ic_attach_slide.png
deleted file mode 100644
index 7c5db31..0000000
--- a/res/drawable-mdpi/ic_attach_slide.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_attach_various.png b/res/drawable-mdpi/ic_attach_various.png
deleted file mode 100644
index ea3f377..0000000
--- a/res/drawable-mdpi/ic_attach_various.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_attach_video.png b/res/drawable-mdpi/ic_attach_video.png
deleted file mode 100644
index ea352f0..0000000
--- a/res/drawable-mdpi/ic_attach_video.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_attach_video_holo_light.png b/res/drawable-mdpi/ic_attach_video_holo_light.png
deleted file mode 100644
index 92eca7b..0000000
--- a/res/drawable-mdpi/ic_attach_video_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_carrot_holo.9.png b/res/drawable-mdpi/ic_carrot_holo.9.png
deleted file mode 100644
index 372fe9f..0000000
--- a/res/drawable-mdpi/ic_carrot_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_edit_holo_dark.png b/res/drawable-mdpi/ic_edit_holo_dark.png
deleted file mode 100644
index 66b595e..0000000
--- a/res/drawable-mdpi/ic_edit_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_forward_holo_dark.png b/res/drawable-mdpi/ic_forward_holo_dark.png
deleted file mode 100644
index 0894ce5..0000000
--- a/res/drawable-mdpi/ic_forward_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_archive_holo_light.png b/res/drawable-mdpi/ic_menu_archive_holo_light.png
index 8d2a3f8..5391507 100644
--- a/res/drawable-mdpi/ic_menu_archive_holo_light.png
+++ b/res/drawable-mdpi/ic_menu_archive_holo_light.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_compose_normal_holo_light.png b/res/drawable-mdpi/ic_menu_compose_normal_holo_light.png
index 4f194f8..a1f7dfe 100644
--- a/res/drawable-mdpi/ic_menu_compose_normal_holo_light.png
+++ b/res/drawable-mdpi/ic_menu_compose_normal_holo_light.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_folders_holo_light.png b/res/drawable-mdpi/ic_menu_folders_holo_light.png
deleted file mode 100644
index 2ad5910..0000000
--- a/res/drawable-mdpi/ic_menu_folders_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_mark_read_holo_light.png b/res/drawable-mdpi/ic_menu_mark_read_holo_light.png
index 05294de..398388e 100644
--- a/res/drawable-mdpi/ic_menu_mark_read_holo_light.png
+++ b/res/drawable-mdpi/ic_menu_mark_read_holo_light.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_mark_unread_holo_light.png b/res/drawable-mdpi/ic_menu_mark_unread_holo_light.png
index 21adb5e..00e3b8a 100644
--- a/res/drawable-mdpi/ic_menu_mark_unread_holo_light.png
+++ b/res/drawable-mdpi/ic_menu_mark_unread_holo_light.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_moreoverflow_normal_holo_light.png b/res/drawable-mdpi/ic_menu_moreoverflow_normal_holo_light.png
new file mode 100644
index 0000000..bcc7c19
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_moreoverflow_normal_holo_light.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_move_to_holo_light.png b/res/drawable-mdpi/ic_menu_move_to_holo_light.png
index 3386449..423cb1f 100644
--- a/res/drawable-mdpi/ic_menu_move_to_holo_light.png
+++ b/res/drawable-mdpi/ic_menu_move_to_holo_light.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_search_holo_light.png b/res/drawable-mdpi/ic_menu_search_holo_light.png
index 2369d03..3311684 100644
--- a/res/drawable-mdpi/ic_menu_search_holo_light.png
+++ b/res/drawable-mdpi/ic_menu_search_holo_light.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_trash_holo_light.png b/res/drawable-mdpi/ic_menu_trash_holo_light.png
index 7e7c3fe..677f9a7 100644
--- a/res/drawable-mdpi/ic_menu_trash_holo_light.png
+++ b/res/drawable-mdpi/ic_menu_trash_holo_light.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_notification_multiple_mail_holo_dark.png b/res/drawable-mdpi/ic_notification_multiple_mail_holo_dark.png
index a6394aa..8071c27 100644
--- a/res/drawable-mdpi/ic_notification_multiple_mail_holo_dark.png
+++ b/res/drawable-mdpi/ic_notification_multiple_mail_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_remove_label.png b/res/drawable-mdpi/ic_remove_label.png
index 9dfd4b1..a4f2f74 100644
--- a/res/drawable-mdpi/ic_remove_label.png
+++ b/res/drawable-mdpi/ic_remove_label.png
Binary files differ
diff --git a/res/drawable-mdpi/spinner_ab_default_holo_light.9.png b/res/drawable-mdpi/spinner_ab_default_holo_light.9.png
deleted file mode 100644
index 4055f70..0000000
--- a/res/drawable-mdpi/spinner_ab_default_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/spinner_ab_disabled_holo_light.9.png b/res/drawable-mdpi/spinner_ab_disabled_holo_light.9.png
deleted file mode 100644
index f74c02b..0000000
--- a/res/drawable-mdpi/spinner_ab_disabled_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/spinner_ab_focused_holo_light.9.png b/res/drawable-mdpi/spinner_ab_focused_holo_light.9.png
deleted file mode 100644
index 6536ee6..0000000
--- a/res/drawable-mdpi/spinner_ab_focused_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/spinner_ab_pressed_holo_light.9.png b/res/drawable-mdpi/spinner_ab_pressed_holo_light.9.png
deleted file mode 100644
index 6de0ba8..0000000
--- a/res/drawable-mdpi/spinner_ab_pressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/btn_default_disabled_focused_holo_light.9.png b/res/drawable-xhdpi/btn_default_disabled_focused_holo_light.9.png
new file mode 100644
index 0000000..efb728a
--- /dev/null
+++ b/res/drawable-xhdpi/btn_default_disabled_focused_holo_light.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/btn_default_disabled_holo_light.9.png b/res/drawable-xhdpi/btn_default_disabled_holo_light.9.png
new file mode 100644
index 0000000..2139044
--- /dev/null
+++ b/res/drawable-xhdpi/btn_default_disabled_holo_light.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/btn_default_focused_holo_light.9.png b/res/drawable-xhdpi/btn_default_focused_holo_light.9.png
new file mode 100644
index 0000000..6fd626e
--- /dev/null
+++ b/res/drawable-xhdpi/btn_default_focused_holo_light.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/btn_default_normal_holo_light.9.png b/res/drawable-xhdpi/btn_default_normal_holo_light.9.png
new file mode 100644
index 0000000..cd330ba
--- /dev/null
+++ b/res/drawable-xhdpi/btn_default_normal_holo_light.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/btn_default_pressed_holo_light.9.png b/res/drawable-xhdpi/btn_default_pressed_holo_light.9.png
new file mode 100644
index 0000000..681e561
--- /dev/null
+++ b/res/drawable-xhdpi/btn_default_pressed_holo_light.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/caret_grey.9.png b/res/drawable-xhdpi/caret_grey.9.png
new file mode 100644
index 0000000..4c09f16
--- /dev/null
+++ b/res/drawable-xhdpi/caret_grey.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_attach_doc.png b/res/drawable-xhdpi/ic_attach_doc.png
deleted file mode 100644
index b8c664c..0000000
--- a/res/drawable-xhdpi/ic_attach_doc.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_attach_event.png b/res/drawable-xhdpi/ic_attach_event.png
deleted file mode 100644
index b6bf96e..0000000
--- a/res/drawable-xhdpi/ic_attach_event.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_attach_excel.png b/res/drawable-xhdpi/ic_attach_excel.png
deleted file mode 100644
index 247bb17..0000000
--- a/res/drawable-xhdpi/ic_attach_excel.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_attach_pdf.png b/res/drawable-xhdpi/ic_attach_pdf.png
deleted file mode 100644
index f902b49..0000000
--- a/res/drawable-xhdpi/ic_attach_pdf.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_attach_pic.png b/res/drawable-xhdpi/ic_attach_pic.png
deleted file mode 100644
index 719c42a..0000000
--- a/res/drawable-xhdpi/ic_attach_pic.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_attach_slide.png b/res/drawable-xhdpi/ic_attach_slide.png
deleted file mode 100644
index 2bebd94..0000000
--- a/res/drawable-xhdpi/ic_attach_slide.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_attach_various.png b/res/drawable-xhdpi/ic_attach_various.png
deleted file mode 100644
index 2c22a97..0000000
--- a/res/drawable-xhdpi/ic_attach_various.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_attach_video.png b/res/drawable-xhdpi/ic_attach_video.png
deleted file mode 100644
index ef0d461..0000000
--- a/res/drawable-xhdpi/ic_attach_video.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_attach_video_holo_light.png b/res/drawable-xhdpi/ic_attach_video_holo_light.png
deleted file mode 100644
index 7b1fbd5..0000000
--- a/res/drawable-xhdpi/ic_attach_video_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_carrot_holo.9.png b/res/drawable-xhdpi/ic_carrot_holo.9.png
deleted file mode 100644
index 2c5f03a..0000000
--- a/res/drawable-xhdpi/ic_carrot_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_edit_holo_dark.png b/res/drawable-xhdpi/ic_edit_holo_dark.png
deleted file mode 100644
index 169003f..0000000
--- a/res/drawable-xhdpi/ic_edit_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_forward_holo_dark.png b/res/drawable-xhdpi/ic_forward_holo_dark.png
deleted file mode 100644
index 95e617e..0000000
--- a/res/drawable-xhdpi/ic_forward_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_archive_holo_light.png b/res/drawable-xhdpi/ic_menu_archive_holo_light.png
index 5279178..730592c 100644
--- a/res/drawable-xhdpi/ic_menu_archive_holo_light.png
+++ b/res/drawable-xhdpi/ic_menu_archive_holo_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_compose_normal_holo_light.png b/res/drawable-xhdpi/ic_menu_compose_normal_holo_light.png
index a2d821a..6e6c795 100644
--- a/res/drawable-xhdpi/ic_menu_compose_normal_holo_light.png
+++ b/res/drawable-xhdpi/ic_menu_compose_normal_holo_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_folders_holo_light.png b/res/drawable-xhdpi/ic_menu_folders_holo_light.png
deleted file mode 100644
index fb13638..0000000
--- a/res/drawable-xhdpi/ic_menu_folders_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_mark_read_holo_light.png b/res/drawable-xhdpi/ic_menu_mark_read_holo_light.png
index cfd5e34..5845a71 100644
--- a/res/drawable-xhdpi/ic_menu_mark_read_holo_light.png
+++ b/res/drawable-xhdpi/ic_menu_mark_read_holo_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_mark_unread_holo_light.png b/res/drawable-xhdpi/ic_menu_mark_unread_holo_light.png
index f023cb0..c115d53 100644
--- a/res/drawable-xhdpi/ic_menu_mark_unread_holo_light.png
+++ b/res/drawable-xhdpi/ic_menu_mark_unread_holo_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_moreoverflow_normal_holo_light.png b/res/drawable-xhdpi/ic_menu_moreoverflow_normal_holo_light.png
new file mode 100644
index 0000000..67f7347
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_moreoverflow_normal_holo_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_move_to_holo_light.png b/res/drawable-xhdpi/ic_menu_move_to_holo_light.png
index 5e712aa..b3f6926 100644
--- a/res/drawable-xhdpi/ic_menu_move_to_holo_light.png
+++ b/res/drawable-xhdpi/ic_menu_move_to_holo_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_search_holo_light.png b/res/drawable-xhdpi/ic_menu_search_holo_light.png
index 578cb24..528fa1d 100644
--- a/res/drawable-xhdpi/ic_menu_search_holo_light.png
+++ b/res/drawable-xhdpi/ic_menu_search_holo_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_trash_holo_light.png b/res/drawable-xhdpi/ic_menu_trash_holo_light.png
index 56d68fa..b36cd62 100644
--- a/res/drawable-xhdpi/ic_menu_trash_holo_light.png
+++ b/res/drawable-xhdpi/ic_menu_trash_holo_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_notification_multiple_mail_holo_dark.png b/res/drawable-xhdpi/ic_notification_multiple_mail_holo_dark.png
index ddb32fe..03bf26c 100644
--- a/res/drawable-xhdpi/ic_notification_multiple_mail_holo_dark.png
+++ b/res/drawable-xhdpi/ic_notification_multiple_mail_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_remove_label.png b/res/drawable-xhdpi/ic_remove_label.png
index c482252..142426e 100644
--- a/res/drawable-xhdpi/ic_remove_label.png
+++ b/res/drawable-xhdpi/ic_remove_label.png
Binary files differ
diff --git a/res/drawable-xhdpi/spinner_ab_default_holo_light.9.png b/res/drawable-xhdpi/spinner_ab_default_holo_light.9.png
deleted file mode 100644
index 9174c4e..0000000
--- a/res/drawable-xhdpi/spinner_ab_default_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/spinner_ab_disabled_holo_light.9.png b/res/drawable-xhdpi/spinner_ab_disabled_holo_light.9.png
deleted file mode 100644
index 126637d..0000000
--- a/res/drawable-xhdpi/spinner_ab_disabled_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/spinner_ab_focused_holo_light.9.png b/res/drawable-xhdpi/spinner_ab_focused_holo_light.9.png
deleted file mode 100644
index 29036b9..0000000
--- a/res/drawable-xhdpi/spinner_ab_focused_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/spinner_ab_pressed_holo_light.9.png b/res/drawable-xhdpi/spinner_ab_pressed_holo_light.9.png
deleted file mode 100644
index 82f752f..0000000
--- a/res/drawable-xhdpi/spinner_ab_pressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/btn_default.xml b/res/drawable/btn_default.xml
new file mode 100644
index 0000000..5ed0301
--- /dev/null
+++ b/res/drawable/btn_default.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+ 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_window_focused="false" android:state_enabled="true"
+ android:drawable="@drawable/btn_default_normal_holo_light" />
+ <item android:state_window_focused="false" android:state_enabled="false"
+ android:drawable="@drawable/btn_default_disabled_holo_light" />
+ <item android:state_pressed="true"
+ android:drawable="@drawable/btn_default_pressed_holo_light" />
+ <item android:state_focused="true" android:state_enabled="true"
+ android:drawable="@drawable/btn_default_focused_holo_light" />
+ <item android:state_enabled="true"
+ android:drawable="@drawable/btn_default_normal_holo_light" />
+ <item android:state_focused="true"
+ android:drawable="@drawable/btn_default_disabled_focused_holo_light" />
+ <item android:drawable="@drawable/btn_default_disabled_holo_light" />
+</selector>
diff --git a/res/drawable/ic_menu_folders_holo_light.xml b/res/drawable/ic_menu_folders_holo_light.xml
new file mode 100644
index 0000000..725b22f
--- /dev/null
+++ b/res/drawable/ic_menu_folders_holo_light.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2013 Google Inc.
+ Licensed to The Android Open Source Project.
+
+ 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.
+-->
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/ic_menu_move_to_holo_light"/>
\ No newline at end of file
diff --git a/res/layout/card_border.xml b/res/layout/card_border.xml
index 90c5058..4adeb82 100644
--- a/res/layout/card_border.xml
+++ b/res/layout/card_border.xml
@@ -25,10 +25,10 @@
android:id="@+id/card_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/conversation_view_margin_side_minus_gradient"
- android:layout_marginLeft="@dimen/conversation_view_margin_side_minus_gradient"
- android:layout_marginEnd="@dimen/conversation_view_margin_side_minus_gradient"
- android:layout_marginRight="@dimen/conversation_view_margin_side_minus_gradient"
+ android:layout_marginStart="@dimen/conversation_view_margin_side"
+ android:layout_marginLeft="@dimen/conversation_view_margin_side"
+ android:layout_marginEnd="@dimen/conversation_view_margin_side"
+ android:layout_marginRight="@dimen/conversation_view_margin_side"
android:background="@drawable/card_bottom" />
<Space
android:id="@+id/border_space"
@@ -38,9 +38,9 @@
android:id="@+id/card_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/conversation_view_margin_side_minus_gradient"
- android:layout_marginLeft="@dimen/conversation_view_margin_side_minus_gradient"
- android:layout_marginEnd="@dimen/conversation_view_margin_side_minus_gradient"
- android:layout_marginRight="@dimen/conversation_view_margin_side_minus_gradient"
+ android:layout_marginStart="@dimen/conversation_view_margin_side"
+ android:layout_marginLeft="@dimen/conversation_view_margin_side"
+ android:layout_marginEnd="@dimen/conversation_view_margin_side"
+ android:layout_marginRight="@dimen/conversation_view_margin_side"
android:background="@drawable/card_top" />
</com.android.mail.browse.BorderView>
diff --git a/res/layout/conversation_long_press_to_select_tip_view.xml b/res/layout/conversation_long_press_to_select_tip_view.xml
index 448ecee..0e92ff0 100644
--- a/res/layout/conversation_long_press_to_select_tip_view.xml
+++ b/res/layout/conversation_long_press_to_select_tip_view.xml
@@ -52,6 +52,8 @@
android:scaleType="center"
android:contentDescription="@string/dismiss_tip_hover_text"
android:src="@drawable/ic_cancel_holo_light" />
+
+ <include layout="@layout/teaser_right_edge" />
</LinearLayout>
</com.android.mail.ui.ConversationLongPressTipView>
diff --git a/res/layout/conversation_message_upper_header_actions.xml b/res/layout/conversation_message_upper_header_actions.xml
index 016dd5a..fc83b83 100644
--- a/res/layout/conversation_message_upper_header_actions.xml
+++ b/res/layout/conversation_message_upper_header_actions.xml
@@ -42,5 +42,5 @@
android:id="@+id/overflow"
android:layout_height="@dimen/message_header_action_button_height"
android:layout_width="@dimen/message_header_action_button_width"
- style="@android:style/Widget.Holo.Light.ActionButton.Overflow" />
+ style="@style/OverflowButtonStyle" />
</merge>
diff --git a/res/layout/conversation_outbox_tip_view.xml b/res/layout/conversation_outbox_tip_view.xml
index 8a1951f..61bb6f6 100644
--- a/res/layout/conversation_outbox_tip_view.xml
+++ b/res/layout/conversation_outbox_tip_view.xml
@@ -51,6 +51,8 @@
android:scaleType="center"
android:contentDescription="@string/dismiss_tip_hover_text"
android:src="@drawable/ic_cancel_holo_light" />
+
+ <include layout="@layout/teaser_right_edge" />
</LinearLayout>
</com.android.mail.ui.ConversationsInOutboxTipView>
diff --git a/res/layout/conversation_photo_teaser_view.xml b/res/layout/conversation_photo_teaser_view.xml
index 86eac00..607c31d 100644
--- a/res/layout/conversation_photo_teaser_view.xml
+++ b/res/layout/conversation_photo_teaser_view.xml
@@ -60,6 +60,8 @@
android:scaleType="center"
android:contentDescription="@string/dismiss_tip_hover_text"
android:src="@drawable/ic_cancel_holo_light" />
+
+ <include layout="@layout/teaser_right_edge" />
</LinearLayout>
</com.android.mail.ui.ConversationPhotoTeaserView>
diff --git a/res/layout/conversation_sync_disabled_tip_view.xml b/res/layout/conversation_sync_disabled_tip_view.xml
index 339c1ec..a361f1a 100644
--- a/res/layout/conversation_sync_disabled_tip_view.xml
+++ b/res/layout/conversation_sync_disabled_tip_view.xml
@@ -64,6 +64,8 @@
android:scaleType="center"
android:contentDescription="@string/dismiss_tip_hover_text"
android:src="@drawable/ic_cancel_holo_light" />
+
+ <include layout="@layout/teaser_right_edge" />
</LinearLayout>
</com.android.mail.ui.ConversationSyncDisabledTipView>
diff --git a/res/layout/conversation_view.xml b/res/layout/conversation_view.xml
index 56c36c6..8d6e628 100644
--- a/res/layout/conversation_view.xml
+++ b/res/layout/conversation_view.xml
@@ -56,14 +56,20 @@
android:layout_gravity="top"
android:visibility="gone" />
- <include layout="@layout/new_message_notification_bar"
+ <Button xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/new_message_notification_bar"
+ style="@style/NewMessageButtonStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginStart="@dimen/conversation_view_margin_side"
android:layout_marginEnd="@dimen/conversation_view_margin_side"
android:layout_marginLeft="@dimen/conversation_view_margin_side"
- android:layout_marginRight="@dimen/conversation_view_margin_side" />
+ android:layout_marginRight="@dimen/conversation_view_margin_side"
+ android:animateLayoutChanges="true"
+ android:paddingLeft="24dp"
+ android:paddingRight="24dp"
+ android:visibility="gone" />
</FrameLayout>
diff --git a/res/layout/conversation_view_header.xml b/res/layout/conversation_view_header.xml
index fd151c0..673a8a5 100644
--- a/res/layout/conversation_view_header.xml
+++ b/res/layout/conversation_view_header.xml
@@ -20,6 +20,10 @@
android:id="@+id/conversation_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/conversation_header_margin_side"
+ android:layout_marginLeft="@dimen/conversation_header_margin_side"
+ android:layout_marginEnd="@dimen/conversation_header_margin_side"
+ android:layout_marginRight="@dimen/conversation_header_margin_side"
android:background="@android:color/white"
android:orientation="vertical" >
diff --git a/res/layout/nested_folder.xml b/res/layout/nested_folder.xml
index d93765b..10ffb92 100644
--- a/res/layout/nested_folder.xml
+++ b/res/layout/nested_folder.xml
@@ -25,11 +25,11 @@
<!--This is a rough layout. We don't have UX specs yet, so all the values are hardcoded.
Also, it looks totally ugly. The ugliness is intentional.-->
- <RelativeLayout
+ <LinearLayout
android:id="@+id/swipeable_content"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
+ android:layout_height="match_parent"
+ android:orientation="horizontal"
>
<ImageView
@@ -38,31 +38,32 @@
android:layout_width="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
+ android:layout_gravity="center_vertical"
android:src="@drawable/ic_menu_folders_holo_light"
- android:layout_alignParentLeft="true"
android:contentDescription="@string/folder_icon_desc"
- android:layout_centerVertical="true"
/>
<TextView
- android:layout_width="wrap_content"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_gravity="center_vertical"
android:id="@+id/nested_folder_name"
android:includeFontPadding="false"
android:maxLines="2"
android:ellipsize="end"
android:textColor="@color/folder_item_text_color"
android:textAppearance="?android:attr/textAppearanceMedium"
- android:layout_centerVertical="true"
- android:layout_height="match_parent"
- android:layout_toRightOf="@id/nested_folder_icon" />
+ />
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
+ android:layout_gravity="center_vertical"
android:id="@+id/nested_folder_unread"
style="@style/UnreadCount"
- android:layout_alignBaseline="@id/nested_folder_name"
- android:layout_alignParentRight="true"
android:layout_marginRight="16dp"
/>
- </RelativeLayout>
+
+ <include layout="@layout/teaser_right_edge" />
+ </LinearLayout>
</com.android.mail.ui.NestedFolderView>
\ No newline at end of file
diff --git a/res/layout/new_message_notification_bar.xml b/res/layout/new_message_notification_bar.xml
deleted file mode 100644
index 82dc342..0000000
--- a/res/layout/new_message_notification_bar.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2012 Google Inc.
- Licensed to The Android Open Source Project.
-
- 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.
--->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_marginBottom="12dp"
- android:animateLayoutChanges="true"
- android:background="@android:color/white">
-
- <!-- ignore UselessParent because the button drawable needs a white background -->
- <LinearLayout
- android:id="@+id/new_message_notification_bar"
- style="?android:attr/buttonStyle"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:paddingLeft="24dp"
- android:paddingRight="24dp"
- android:visibility="gone"
- tools:ignore="UselessParent" >
-
- <TextView
- android:id="@+id/new_message_description"
- style="?android:attr/textAppearanceMedium"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:singleLine="true" />
-
- <TextView
- style="?android:attr/textAppearanceMedium"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="8dp"
- android:text="@string/show" />
- </LinearLayout>
-
-</FrameLayout>
diff --git a/res/layout/teaser_right_edge.xml b/res/layout/teaser_right_edge.xml
new file mode 100644
index 0000000..c3c0270
--- /dev/null
+++ b/res/layout/teaser_right_edge.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2013 Google Inc.
+ Licensed to The Android Open Source Project.
+
+ 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.
+-->
+<!-- This is used to show the line on the right edge of a list item in tablet ui -->
+<ImageView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/teaser_right_edge"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:src="@drawable/list_edge_tablet"/>
diff --git a/res/raw/template_conversation_lower.html b/res/raw/template_conversation_lower.html
index b128077..9c18cf5 100644
--- a/res/raw/template_conversation_lower.html
+++ b/res/raw/template_conversation_lower.html
@@ -5,7 +5,6 @@
var MSG_SHOW_ELIDED = '%s';
var DOC_BASE_URI = '%s';
var CONVERSATION_BASE_URI = '%s';
- var VIEW_WIDTH = %s;
var WIDE_VIEWPORT_WIDTH = %s;
var ENABLE_CONTENT_READY = %s;
var NORMALIZE_MESSAGE_WIDTHS = %s;
diff --git a/res/values-sw600dp/dimen.xml b/res/values-sw600dp/dimen.xml
index ba74f9e..517021b 100644
--- a/res/values-sw600dp/dimen.xml
+++ b/res/values-sw600dp/dimen.xml
@@ -18,10 +18,11 @@
<resources>
<dimen name="conversation_view_margin_side">16dp</dimen>
<dimen name="conversation_view_margin_side_minus_gradient">15dp</dimen>
+ <dimen name="conversation_header_margin_side">15dp</dimen>
<dimen name="conversation_header_font_size">24sp</dimen>
<dimen name="conversation_header_vertical_padding">26dip</dimen>
<dimen name="conversation_header_vertical_padding_condensed">26dip</dimen>
- <dimen name="conversation_header_side_padding">40dip</dimen>
+ <dimen name="conversation_header_side_padding">24dip</dimen>
<dimen name="conversation_page_gutter">0dip</dimen>
<dimen name="message_border_height">16dp</dimen>
<dimen name="message_header_padding_start">24dp</dimen>
diff --git a/res/values-sw600dp/styles.xml b/res/values-sw600dp/styles.xml
index 21c4410..dc94356 100644
--- a/res/values-sw600dp/styles.xml
+++ b/res/values-sw600dp/styles.xml
@@ -16,10 +16,6 @@
limitations under the License.
-->
<resources>
- <style name="UnreadCountActionBar" parent="UnreadCountActionBarBase">
- <item name="android:gravity">center_vertical|left</item>
- </style>
-
<style name="AccountSpinnerAnchorTextPrimary" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
</style>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 7fb8518..2693db7 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -65,9 +65,6 @@
<color name="conv_header_text_dark">@color/dark_gray_text_color</color>
<color name="conv_header_text_link_blue">#35b4e3</color>
-
- <color name="position_bar_background">@color/gray_text_color</color>
-
<!-- Folder colors -->
<color name="folder_disabled_drop_target_text_color">#999999</color>
@@ -104,7 +101,7 @@
<!-- Teaser colors -->
<!-- The color of the section name text in the teaser -->
- <color name="teaser_main_text">#58585b</color>
+ <color name="teaser_main_text">@color/dark_gray_text_color</color>
<!-- swipe to refresh text color, this matches the color in
progressbar_solid_holo.png -->
@@ -112,5 +109,5 @@
<!-- The background color of the message header -->
<color name="message_header_background_color">@android:color/white</color>
- <color name="message_border_gradient_color">#f8f8f8</color>
+ <color name="message_border_gradient_color">#ebebeb</color>
</resources>
diff --git a/res/values/dimen.xml b/res/values/dimen.xml
index 28fe4f4..2da5f0a 100644
--- a/res/values/dimen.xml
+++ b/res/values/dimen.xml
@@ -37,6 +37,7 @@
<dimen name="conversation_message_content_margin_side">16dp</dimen>
<dimen name="conversation_view_margin_side">8dp</dimen>
<dimen name="conversation_view_margin_side_minus_gradient">7dp</dimen>
+ <dimen name="conversation_header_margin_side">0dp</dimen>
<dimen name="conversation_header_font_size">18sp</dimen>
<dimen name="conversation_header_font_size_condensed">14sp</dimen>
<dimen name="conversation_header_vertical_padding">16dip</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0128e4f..61fd7fa 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -221,8 +221,6 @@
<string name="preview_attachment">Preview</string>
<!-- Read email screen, button name. Save an attachment to sd card. [CHAR LIMIT=10] -->
<string name="save_attachment">Save</string>
- <!-- Read email screen, button name. Open a dialog to explain that no application found to view the attachment. [CHAR LIMIT=10] -->
- <string name="info_attachment">Info</string>
<!-- Read email screen, button name. Cancel a downloading attachment. [CHAR LIMIT=10] -->
<string name="cancel_attachment">Cancel</string>
<!-- Read email screen, button name. Redownload an attachment [CHAR LIMIT=20]-->
@@ -437,28 +435,15 @@
<!-- Search Results: Text for header that is shown above search results, while waiting for search results from the server [CHAR LIMIT=30] -->
<string name="search_results_searching_header">Searching\u2026</string>
- <!-- List header for recent folders for current account in account dropdown [CHAR LIMIT=100] -->
- <string name="recent_folders">Recent</string>
-
<!-- Conversation view -->
<!-- Text anchor for control to add / change labels on a conversation when
viewing it. [CHAR LIMIT=40] -->
<string name="add_label">Add label</string>
- <!-- position bar label in conversation view: number out of total [CHAR LIMIT=50]-->
- <string name="conversation_count"><xliff:g id="count">%1$s</xliff:g> of <xliff:g id="total">%2$s</xliff:g></string>
- <!-- position bar label in conversation view: label for a newer conversation [CHAR LIMIT=20]-->
- <string name="conversation_newer">Newer</string>
- <!-- position bar label in conversation view: label for an older conversation [CHAR LIMIT=20]-->
- <string name="conversation_older">Older</string>
<!-- New Message notification text that appears over conversation view on incoming message. [CHAR LIMIT=30] -->
- <string name="new_incoming_messages_one">New message from <xliff:g id="sender">%s</xliff:g>.</string>
+ <string name="new_incoming_messages_one">New message from <xliff:g id="sender">%s</xliff:g>. Show.</string>
<!-- New Message notification text that appears over conversation view on incoming messages. [CHAR LIMIT=30] -->
- <string name="new_incoming_messages_many"><xliff:g id="count">%1$d</xliff:g> new messages</string>
-
- <!-- Anchor text for a control to show new messages when viewing a
- conversation. [CHAR LIMIT=20] -->
- <string name="show">Show</string>
+ <string name="new_incoming_messages_many"><xliff:g id="count">%1$d</xliff:g> new messages. Show.</string>
<!-- Conversation message header strings -->
<!-- Icon name for expanding recipient details in a message when viewing it. [CHAR LIMIT=40] -->
@@ -583,17 +568,6 @@
<!-- Name of the Folder shortcut widget. Should use "Email" to refer to the app. [CHAR LIMIT=30] -->
<string name="folder_shortcut_widget_label">Email folder</string>
- <!-- Manange folders mode, sync option: synchronize all conversations with this folder. [CHAR LIMIT=100] -->
- <string name="sync_all">Sync: All</string>
- <plurals name="sync_recent">
- <!-- Manage folders mode, sync option: synchronize conversations in the last day with this folder [CHAR LIMIT=100] -->
- <item quantity="one">Sync: Last <xliff:g id="count" example="1">%1$d</xliff:g> day</item>
- <!-- Manage folders mode, sync option: synchronize conversations in the last 2+ day with this folder [CHAR LIMIT=100] -->
- <item quantity="other">Sync: Last <xliff:g id="count" example="4">%1$d</xliff:g> days</item>
- </plurals>
- <!-- Manage folders mode, sync option: don't synchronize any conversation with this folder [CHAR LIMIT=100] -->
- <string name="sync_none">Sync: None</string>
-
<!-- Folder selection dialog -->
<!-- Title for change folders dialog [CHAR LIMIT=30] -->
<string name="change_folders_selection_dialog_title">Change folders</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index c354d3a..2feeb5e 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -146,24 +146,6 @@
<item name="android:paddingBottom">4dp</item>
</style>
- <style name="UnreadCountActionBarBase" parent="UnreadCount">
- <item name="android:layout_marginRight">8dp</item>
- <item name="android:textColor">#bbbbbb</item>
- <!-- Use dp rather than sp for size since starts large and must not get too large -->
- <item name="android:textSize">36dp</item>
- <item name="android:layout_width">match_parent</item>
- <item name="android:layout_height">match_parent</item>
- <item name="android:gravity">center_vertical</item>
- <item name="android:onClick">doNothingClickHandler</item>
- <item name="android:focusableInTouchMode">true</item>
- <item name="android:focusable">true</item>
- <item name="android:clickable">true</item>
- </style>
-
- <style name="UnreadCountActionBar" parent="UnreadCountActionBarBase">
- <item name="android:gravity">center_vertical|right</item>
- </style>
-
<style name="UnseenCount">
<item name="android:layout_width">44dp</item>
<item name="android:layout_height">wrap_content</item>
@@ -368,8 +350,14 @@
<item name="android:displayOptions"></item>
</style>
+ <style name="OverflowButtonStyle"
+ parent="@android:style/Widget.Holo.Light.ActionButton.Overflow">
+ <item name="android:src">@drawable/ic_menu_moreoverflow_normal_holo_light</item>
+ </style>
+
<style name="UnifiedEmailTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionDropDownStyle">@style/PlainSpinnerDropdown</item>
+ <item name="android:actionOverflowButtonStyle">@style/OverflowButtonStyle</item>
<item name="android:listViewWhiteStyle">@android:style/Widget.Holo.Light.ListView</item>
</style>
@@ -473,4 +461,10 @@
<item name="android:textColor">?android:attr/textColorLink</item>
</style>
+ <style name="NewMessageButtonStyle" parent="@android:style/Widget.Holo.Light.Button">
+ <item name="android:background">@drawable/btn_default</item>
+ <item name="android:singleLine">true</item>
+ <item name="android:textColor">@color/dark_gray_text_color</item>
+ <item name="android:textSize">14sp</item>
+ </style>
</resources>
diff --git a/src/com/android/emailcommon/mail/Address.java b/src/com/android/emailcommon/mail/Address.java
index b8bb6b2..b648b81 100644
--- a/src/com/android/emailcommon/mail/Address.java
+++ b/src/com/android/emailcommon/mail/Address.java
@@ -58,6 +58,21 @@
// Regex that matches escaped character '\\([\\"])'
private static final Pattern UNQUOTE = Pattern.compile("\\\\([\\\\\"])");
+
+ // TODO: LOCAL_PART and DOMAIN_PART_PART are too permissive and can be improved.
+ // TODO: Fix this to better constrain comments.
+ /** Regex for the local part of an email address. */
+ private static final String LOCAL_PART = "[^@]+";
+ /** Regex for each part of the domain part, i.e. the thing between the dots. */
+ private static final String DOMAIN_PART_PART = "[[\\w][\\d]\\-\\(\\)\\[\\]]+";
+ /** Regex for the domain part, which is two or more {@link #DOMAIN_PART_PART} separated by . */
+ private static final String DOMAIN_PART =
+ "(" + DOMAIN_PART_PART + "\\.)+" + DOMAIN_PART_PART;
+
+ /** Pattern to check if an email address is valid. */
+ private static final Pattern EMAIL_ADDRESS =
+ Pattern.compile("\\A" + LOCAL_PART + "@" + DOMAIN_PART + "\\z");
+
private static final Address[] EMPTY_ADDRESS_ARRAY = new Address[0];
// delimiters are chars that do not appear in an email address, used by pack/unpack
@@ -162,17 +177,8 @@
* E.g. name@domain.com is valid.
*/
@VisibleForTesting
- static boolean isValidAddress(String address) {
- // Note: Some email provider may violate the standard, so here we only check that
- // address consists of two part that are separated by '@', and domain part contains
- // at least one '.'.
- int len = address.length();
- int firstAt = address.indexOf('@');
- int lastAt = address.lastIndexOf('@');
- int firstDot = address.indexOf('.', lastAt + 1);
- int lastDot = address.lastIndexOf('.');
- return firstAt > 0 && firstAt == lastAt && lastAt + 1 < firstDot
- && firstDot <= lastDot && lastDot < len - 1;
+ static boolean isValidAddress(final String address) {
+ return EMAIL_ADDRESS.matcher(address).find();
}
@Override
diff --git a/src/com/android/mail/browse/ConversationCursor.java b/src/com/android/mail/browse/ConversationCursor.java
index 4b05465..113648d 100644
--- a/src/com/android/mail/browse/ConversationCursor.java
+++ b/src/com/android/mail/browse/ConversationCursor.java
@@ -1345,7 +1345,8 @@
Conversation result = c;
// apply any cached values
// but skip over any cached values that aren't part of the cursor projection
- final ContentValues values = (c != null) ? mCacheMap.get(c.uri.toString()) : null;
+ final ContentValues values = (c != null)
+ ? mCacheMap.get(uriStringFromCachingUri(c.uri)) : null;
if (values != null) {
final ContentValues queryableValues = new ContentValues();
for (String key : values.keySet()) {
diff --git a/src/com/android/mail/browse/ConversationItemView.java b/src/com/android/mail/browse/ConversationItemView.java
index b6e8af4..b316bf0 100644
--- a/src/com/android/mail/browse/ConversationItemView.java
+++ b/src/com/android/mail/browse/ConversationItemView.java
@@ -440,8 +440,7 @@
BitmapFactory.decodeResource(res, R.drawable.ic_badge_reply_forward_holo_light);
STATE_CALENDAR_INVITE =
BitmapFactory.decodeResource(res, R.drawable.ic_badge_invite_holo_light);
- VISIBLE_CONVERSATION_CARET = BitmapFactory.decodeResource(res,
- R.drawable.ic_carrot_holo);
+ VISIBLE_CONVERSATION_CARET = BitmapFactory.decodeResource(res, R.drawable.caret_grey);
RIGHT_EDGE_TABLET = res.getDrawable(R.drawable.list_edge_tablet);
PLACEHOLDER = res.getDrawable(drawable.ic_attachment_load);
PROGRESS_BAR = res.getDrawable(drawable.progress_holo);
@@ -1487,9 +1486,8 @@
}
// right-side edge effect when in tablet conversation mode and the list is not collapsed
- if (mTabletDevice && !mListCollapsible &&
- (ViewMode.isConversationMode(mConfig.getViewMode())
- || ViewMode.isAdMode(mConfig.getViewMode()))) {
+ if (Utils.getDisplayListRightEdgeEffect(mTabletDevice, mListCollapsible,
+ mConfig.getViewMode())) {
RIGHT_EDGE_TABLET.setBounds(getWidth() - RIGHT_EDGE_TABLET.getIntrinsicWidth(), 0,
getWidth(), getHeight());
RIGHT_EDGE_TABLET.draw(canvas);
diff --git a/src/com/android/mail/browse/ConversationOverlayItem.java b/src/com/android/mail/browse/ConversationOverlayItem.java
index f9253f3..4f45ee3 100644
--- a/src/com/android/mail/browse/ConversationOverlayItem.java
+++ b/src/com/android/mail/browse/ConversationOverlayItem.java
@@ -159,10 +159,19 @@
* state of another view, we need a mechanism when the
* view's associated item changes to update the state of the
* view. Typically, classes that override this class should not
- * override this method. This method is used by
+ * override this method.<br><br>
+ *
+ * This method is used by
* {@link com.android.mail.browse.ConversationViewAdapter.BorderItem}
* to update the height of the border based on whether the neighboring messages
- * are collapsed or expanded. The only other way would be to
+ * are collapsed or expanded.<br><br>
+ *
+ * It is also used by {@link com.android.mail.browse.ConversationViewAdapter.MessageHeaderItem}
+ * in the case where the snap header is tapped to collapse the message but the
+ * message header is still on screen. Since the message header is still on screen,
+ * it does not get bound but will get a rebind.<br><br>
+ *
+ * The only other way to handle this case would be to call
* {@link com.android.mail.browse.ConversationViewAdapter#notifyDataSetChanged()}
* but that makes the entire screen flicker since the entire adapter performs
* a layout of the every item.
diff --git a/src/com/android/mail/browse/ConversationViewAdapter.java b/src/com/android/mail/browse/ConversationViewAdapter.java
index 671778d..e650c18 100644
--- a/src/com/android/mail/browse/ConversationViewAdapter.java
+++ b/src/com/android/mail/browse/ConversationViewAdapter.java
@@ -247,6 +247,12 @@
public ConversationViewAdapter getAdapter() {
return mAdapter;
}
+
+ @Override
+ public void rebindView(View view) {
+ final MessageHeaderView header = (MessageHeaderView) view;
+ header.rebind(this);
+ }
}
public class MessageFooterItem extends ConversationOverlayItem {
diff --git a/src/com/android/mail/browse/MessageHeaderView.java b/src/com/android/mail/browse/MessageHeaderView.java
index 11fb46e..f12baa7 100644
--- a/src/com/android/mail/browse/MessageHeaderView.java
+++ b/src/com/android/mail/browse/MessageHeaderView.java
@@ -372,6 +372,21 @@
render(measureOnly);
}
+ /**
+ * Rebinds the view to its data. This will only update the view
+ * if the {@link MessageHeaderItem} sent as a parameter is the
+ * same as the view's current {@link MessageHeaderItem} and the
+ * view's expanded state differs from the item's expanded state.
+ */
+ public void rebind(MessageHeaderItem headerItem) {
+ if (mMessageHeaderItem == null || mMessageHeaderItem != headerItem ||
+ isActivated() == isExpanded()) {
+ return;
+ }
+
+ render(false /* measureOnly */);
+ }
+
public void refresh() {
render(false);
}
diff --git a/src/com/android/mail/photo/MailPhotoViewActivity.java b/src/com/android/mail/photo/MailPhotoViewActivity.java
index 8f4216e..c25e45f 100644
--- a/src/com/android/mail/photo/MailPhotoViewActivity.java
+++ b/src/com/android/mail/photo/MailPhotoViewActivity.java
@@ -23,7 +23,6 @@
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcelable;
-import android.support.v4.app.Fragment;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -244,7 +243,7 @@
}
@Override
- public void onFragmentVisible(Fragment fragment) {
+ public void onFragmentVisible(PhotoViewFragment fragment) {
super.onFragmentVisible(fragment);
final Attachment attachment = getCurrentAttachment();
if (attachment.state == AttachmentState.PAUSED) {
diff --git a/src/com/android/mail/ui/AbstractActivityController.java b/src/com/android/mail/ui/AbstractActivityController.java
index edc1e33..332170c 100644
--- a/src/com/android/mail/ui/AbstractActivityController.java
+++ b/src/com/android/mail/ui/AbstractActivityController.java
@@ -2098,6 +2098,12 @@
? DrawerLayout.LOCK_MODE_UNLOCKED : DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
closeDrawerIfOpen();
}
+
+ // Teasers and other items may need to change
+ final ConversationListFragment conversationListFragment = getConversationListFragment();
+ if (conversationListFragment != null) {
+ conversationListFragment.requestListRefresh();
+ }
}
/**
diff --git a/src/com/android/mail/ui/ActionableToastBar.java b/src/com/android/mail/ui/ActionableToastBar.java
index 5beade7..e08cbe3 100644
--- a/src/com/android/mail/ui/ActionableToastBar.java
+++ b/src/com/android/mail/ui/ActionableToastBar.java
@@ -156,10 +156,6 @@
* Hides the view and resets the state.
*/
public void hide(boolean animate, boolean actionClicked) {
- if (!actionClicked && mOperation != null) {
- mOperation.onToastBarTimeout(getContext());
- }
-
mHidden = true;
mFadeOutHandler.removeCallbacks(mRunnable);
if (getVisibility() == View.VISIBLE) {
@@ -172,6 +168,10 @@
setAlpha(0);
setVisibility(View.GONE);
}
+
+ if (!actionClicked && mOperation != null) {
+ mOperation.onToastBarTimeout(getContext());
+ }
}
}
diff --git a/src/com/android/mail/ui/AnimatedAdapter.java b/src/com/android/mail/ui/AnimatedAdapter.java
index 634b645..7b9adee 100644
--- a/src/com/android/mail/ui/AnimatedAdapter.java
+++ b/src/com/android/mail/ui/AnimatedAdapter.java
@@ -499,7 +499,7 @@
// Check if this is a special view
final ConversationSpecialItemView specialView = mSpecialViews.get(position);
if (specialView != null) {
- specialView.onGetView();
+ specialView.onGetView(mActivity.getViewMode().getMode());
return (View) specialView;
}
diff --git a/src/com/android/mail/ui/ConversationLongPressTipView.java b/src/com/android/mail/ui/ConversationLongPressTipView.java
index ee7d67c..8c82b45 100644
--- a/src/com/android/mail/ui/ConversationLongPressTipView.java
+++ b/src/com/android/mail/ui/ConversationLongPressTipView.java
@@ -21,6 +21,7 @@
import com.android.mail.browse.ConversationCursor;
import com.android.mail.preferences.MailPrefs;
import com.android.mail.providers.Folder;
+import com.android.mail.utils.Utils;
import android.animation.Animator;
import android.animation.ObjectAnimator;
@@ -52,6 +53,12 @@
private boolean mShow;
private int mAnimatedHeight = -1;
+ private View mTeaserRightEdge;
+ /** Whether we are on a tablet device or not */
+ private final boolean mTabletDevice;
+ /** When in conversation mode, true if the list is hidden */
+ private final boolean mListCollapsible;
+
public ConversationLongPressTipView(final Context context) {
this(context, null);
}
@@ -73,6 +80,9 @@
}
mMailPrefs = MailPrefs.get(context);
+
+ mTabletDevice = Utils.useTabletUI(resources);
+ mListCollapsible = resources.getBoolean(R.bool.list_collapsible);
}
@Override
@@ -85,6 +95,8 @@
dismiss();
}
});
+
+ mTeaserRightEdge = findViewById(R.id.teaser_right_edge);
}
@Override
@@ -95,8 +107,12 @@
}
@Override
- public void onGetView() {
- // Do nothing
+ public void onGetView(final int viewMode) {
+ if (Utils.getDisplayListRightEdgeEffect(mTabletDevice, mListCollapsible, viewMode)) {
+ mTeaserRightEdge.setVisibility(VISIBLE);
+ } else {
+ mTeaserRightEdge.setVisibility(GONE);
+ }
}
@Override
diff --git a/src/com/android/mail/ui/ConversationPhotoTeaserView.java b/src/com/android/mail/ui/ConversationPhotoTeaserView.java
index c358028..30dc8c9 100644
--- a/src/com/android/mail/ui/ConversationPhotoTeaserView.java
+++ b/src/com/android/mail/ui/ConversationPhotoTeaserView.java
@@ -19,6 +19,7 @@
import com.android.mail.browse.ConversationCursor;
import com.android.mail.preferences.MailPrefs;
import com.android.mail.providers.Folder;
+import com.android.mail.utils.Utils;
/**
* A teaser to introduce people to the contact photo check boxes
@@ -38,6 +39,12 @@
private boolean mNeedLayout;
private int mTextTop;
+ private View mTeaserRightEdge;
+ /** Whether we are on a tablet device or not */
+ private final boolean mTabletDevice;
+ /** When in conversation mode, true if the list is hidden */
+ private final boolean mListCollapsible;
+
public ConversationPhotoTeaserView(final Context context) {
this(context, null);
}
@@ -63,6 +70,9 @@
mMailPrefs = MailPrefs.get(context);
mNeedLayout = true;
+
+ mTabletDevice = Utils.useTabletUI(resources);
+ mListCollapsible = resources.getBoolean(R.bool.list_collapsible);
}
@Override
@@ -75,6 +85,8 @@
dismiss();
}
});
+
+ mTeaserRightEdge = findViewById(R.id.teaser_right_edge);
}
@Override
@@ -113,8 +125,12 @@
}
@Override
- public void onGetView() {
- // Do nothing
+ public void onGetView(final int viewMode) {
+ if (Utils.getDisplayListRightEdgeEffect(mTabletDevice, mListCollapsible, viewMode)) {
+ mTeaserRightEdge.setVisibility(VISIBLE);
+ } else {
+ mTeaserRightEdge.setVisibility(GONE);
+ }
}
@Override
diff --git a/src/com/android/mail/ui/ConversationSpecialItemView.java b/src/com/android/mail/ui/ConversationSpecialItemView.java
index 92fc7ac..db9062a 100644
--- a/src/com/android/mail/ui/ConversationSpecialItemView.java
+++ b/src/com/android/mail/ui/ConversationSpecialItemView.java
@@ -38,7 +38,7 @@
* Called before returning this view from
* {@link Adapter#getView(int, android.view.View, android.view.ViewGroup)}
*/
- void onGetView();
+ void onGetView(int viewMode);
/**
* Returns whether this view is to be displayed in the list or not. A view can be added freely
diff --git a/src/com/android/mail/ui/ConversationSyncDisabledTipView.java b/src/com/android/mail/ui/ConversationSyncDisabledTipView.java
index 1203e4e..b0090d6 100644
--- a/src/com/android/mail/ui/ConversationSyncDisabledTipView.java
+++ b/src/com/android/mail/ui/ConversationSyncDisabledTipView.java
@@ -74,6 +74,12 @@
private int mReasonSyncOff = ReasonSyncOff.NONE;
+ private View mTeaserRightEdge;
+ /** Whether we are on a tablet device or not */
+ private final boolean mTabletDevice;
+ /** When in conversation mode, true if the list is hidden */
+ private final boolean mListCollapsible;
+
public interface ReasonSyncOff {
// Background sync is enabled for current account, do not display this tip
public static final int NONE = 0;
@@ -133,6 +139,9 @@
index,
index + subString.length(),
0);
+
+ mTabletDevice = Utils.useTabletUI(resources);
+ mListCollapsible = resources.getBoolean(R.bool.list_collapsible);
}
public void bindAccount(Account account) {
@@ -141,8 +150,12 @@
}
@Override
- public void onGetView() {
- // Do nothing
+ public void onGetView(final int viewMode) {
+ if (Utils.getDisplayListRightEdgeEffect(mTabletDevice, mListCollapsible, viewMode)) {
+ mTeaserRightEdge.setVisibility(VISIBLE);
+ } else {
+ mTeaserRightEdge.setVisibility(GONE);
+ }
}
@Override
@@ -159,6 +172,8 @@
dismiss();
}
});
+
+ mTeaserRightEdge = findViewById(R.id.teaser_right_edge);
}
@Override
diff --git a/src/com/android/mail/ui/ConversationViewFragment.java b/src/com/android/mail/ui/ConversationViewFragment.java
index eb4799c..e8cd3c1 100644
--- a/src/com/android/mail/ui/ConversationViewFragment.java
+++ b/src/com/android/mail/ui/ConversationViewFragment.java
@@ -41,7 +41,7 @@
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
-import android.widget.TextView;
+import android.widget.Button;
import com.android.mail.FormattedDateBuilder;
import com.android.mail.R;
@@ -127,7 +127,7 @@
private ConversationViewProgressController mProgressController;
- private View mNewMessageBar;
+ private Button mNewMessageBar;
protected HtmlConversationTemplates mTemplates;
@@ -338,7 +338,7 @@
.findViewById(R.id.conversation_container);
mConversationContainer.setAccountController(this);
- mNewMessageBar = mConversationContainer.findViewById(R.id.new_message_notification_bar);
+ mNewMessageBar = (Button) mConversationContainer.findViewById(R.id.new_message_notification_bar);
mNewMessageBar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -732,7 +732,7 @@
false /* firstBorder */, true /* lastBorder */);
// If the conversation has specified a base uri, use it here, otherwise use mBaseUri
- return mTemplates.endConversation(mBaseUri, mConversation.getBaseUri(mBaseUri), 320,
+ return mTemplates.endConversation(mBaseUri, mConversation.getBaseUri(mBaseUri),
mWebView.getViewportWidth(), enableContentReadySignal, isOverviewMode(mAccount),
applyTransforms, applyTransforms);
}
@@ -982,9 +982,7 @@
}
private void showNewMessageNotification(NewMessagesInfo info) {
- final TextView descriptionView = (TextView) mNewMessageBar.findViewById(
- R.id.new_message_description);
- descriptionView.setText(info.getNotificationText());
+ mNewMessageBar.setText(info.getNotificationText());
mNewMessageBar.setVisibility(View.VISIBLE);
}
diff --git a/src/com/android/mail/ui/ConversationsInOutboxTipView.java b/src/com/android/mail/ui/ConversationsInOutboxTipView.java
index fb492c1..94c1b35 100644
--- a/src/com/android/mail/ui/ConversationsInOutboxTipView.java
+++ b/src/com/android/mail/ui/ConversationsInOutboxTipView.java
@@ -41,6 +41,7 @@
import com.android.mail.providers.Account;
import com.android.mail.providers.Folder;
import com.android.mail.providers.UIProvider;
+import com.android.mail.utils.Utils;
/**
* Tip that is displayed in conversation list of 'Sent' folder whenever there are
@@ -65,6 +66,12 @@
private int mAnimatedHeight = -1;
+ private View mTeaserRightEdge;
+ /** Whether we are on a tablet device or not */
+ private final boolean mTabletDevice;
+ /** When in conversation mode, true if the list is hidden */
+ private final boolean mListCollapsible;
+
private static final int LOADER_FOLDER_LIST =
AbstractActivityController.LAST_FRAGMENT_LOADER_ID + 100;
@@ -87,6 +94,9 @@
sShrinkAnimationDuration = resources.getInteger(
R.integer.shrink_animation_duration);
}
+
+ mTabletDevice = Utils.useTabletUI(resources);
+ mListCollapsible = resources.getBoolean(R.bool.list_collapsible);
}
public void bind(final Account account, final FolderSelector folderSelector) {
@@ -96,8 +106,12 @@
}
@Override
- public void onGetView() {
- // Do nothing
+ public void onGetView(final int viewMode) {
+ if (Utils.getDisplayListRightEdgeEffect(mTabletDevice, mListCollapsible, viewMode)) {
+ mTeaserRightEdge.setVisibility(VISIBLE);
+ } else {
+ mTeaserRightEdge.setVisibility(GONE);
+ }
}
@Override
@@ -119,6 +133,8 @@
dismiss();
}
});
+
+ mTeaserRightEdge = findViewById(R.id.teaser_right_edge);
}
private void goToOutbox() {
diff --git a/src/com/android/mail/ui/HtmlConversationTemplates.java b/src/com/android/mail/ui/HtmlConversationTemplates.java
index d70362c..a285247 100644
--- a/src/com/android/mail/ui/HtmlConversationTemplates.java
+++ b/src/com/android/mail/ui/HtmlConversationTemplates.java
@@ -185,7 +185,7 @@
mInProgress = true;
}
- public String endConversation(String docBaseUri, String conversationBaseUri, int viewWidth,
+ public String endConversation(String docBaseUri, String conversationBaseUri,
int viewportWidth, boolean enableContentReadySignal, boolean normalizeMessageWidths,
boolean enableMungeTables, boolean enableMungeImages) {
if (!mInProgress) {
@@ -196,7 +196,7 @@
append(sConversationLower, contentReadyClass, mContext.getString(R.string.hide_elided),
mContext.getString(R.string.show_elided), docBaseUri, conversationBaseUri,
- viewWidth, viewportWidth, enableContentReadySignal, normalizeMessageWidths,
+ viewportWidth, enableContentReadySignal, normalizeMessageWidths,
enableMungeTables, enableMungeImages);
mInProgress = false;
diff --git a/src/com/android/mail/ui/NestedFolderView.java b/src/com/android/mail/ui/NestedFolderView.java
index 856179a..30c1b89 100644
--- a/src/com/android/mail/ui/NestedFolderView.java
+++ b/src/com/android/mail/ui/NestedFolderView.java
@@ -19,6 +19,7 @@
import android.app.LoaderManager;
import android.content.Context;
+import android.content.res.Resources;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
@@ -29,6 +30,7 @@
import com.android.mail.providers.Folder;
import com.android.mail.utils.LogTag;
import com.android.mail.utils.LogUtils;
+import com.android.mail.utils.Utils;
/**
* For folders that might contain other folders, we show the nested folders within this view.
@@ -45,22 +47,34 @@
/** The folder this view represents */
private Folder mFolder;
+ private View mTeaserRightEdge;
+ /** Whether we are on a tablet device or not */
+ private final boolean mTabletDevice;
+ /** When in conversation mode, true if the list is hidden */
+ private final boolean mListCollapsible;
+
public NestedFolderView(Context context) {
- super(context);
+ this(context, null);
}
public NestedFolderView(Context context, AttributeSet attrs) {
- super(context, attrs);
+ this(context, attrs, 0);
}
public NestedFolderView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
+
+ final Resources resources = context.getResources();
+ mTabletDevice = Utils.useTabletUI(resources);
+ mListCollapsible = resources.getBoolean(R.bool.list_collapsible);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
mSwipeableContent = findViewById(R.id.swipeable_content);
+
+ mTeaserRightEdge = findViewById(R.id.teaser_right_edge);
}
@Override
@@ -71,8 +85,12 @@
}
@Override
- public void onGetView() {
- // Do nothing
+ public void onGetView(final int viewMode) {
+ if (Utils.getDisplayListRightEdgeEffect(mTabletDevice, mListCollapsible, viewMode)) {
+ mTeaserRightEdge.setVisibility(VISIBLE);
+ } else {
+ mTeaserRightEdge.setVisibility(GONE);
+ }
}
/**
diff --git a/src/com/android/mail/utils/Utils.java b/src/com/android/mail/utils/Utils.java
index a992dad..fd7ffec 100644
--- a/src/com/android/mail/utils/Utils.java
+++ b/src/com/android/mail/utils/Utils.java
@@ -71,6 +71,7 @@
import com.android.mail.providers.UIProvider;
import com.android.mail.providers.UIProvider.EditSettingsExtras;
import com.android.mail.ui.FeedbackEnabledActivity;
+import com.android.mail.ui.ViewMode;
import org.json.JSONObject;
@@ -545,6 +546,15 @@
}
/**
+ * @return <code>true</code> if the right edge effect should be displayed on list items
+ */
+ public static boolean getDisplayListRightEdgeEffect(final boolean tabletDevice,
+ final boolean listCollapsible, final int viewMode) {
+ return tabletDevice && !listCollapsible
+ && (ViewMode.isConversationMode(viewMode) || ViewMode.isAdMode(viewMode));
+ }
+
+ /**
* Returns a boolean indicating whether or not we should animate in the
* folder list fragment.
*/