diff --git a/.gitignore b/.gitignore
index 4b62fc423f..c609669e95 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
.classpath
+captures/
project.properties
.project
.settings
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 527fc7b339..3d056428c6 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -113,6 +113,7 @@
-
-
+
+
\ No newline at end of file
diff --git a/res/color/text_color_secondary_dark_theme.xml b/res/color/text_color_secondary_dark_theme.xml
index 5510b324c7..1ce14a89f3 100644
--- a/res/color/text_color_secondary_dark_theme.xml
+++ b/res/color/text_color_secondary_dark_theme.xml
@@ -1,5 +1,5 @@
-
-
+
+
\ No newline at end of file
diff --git a/res/drawable-hdpi/ic_advanced_white_24dp.webp b/res/drawable-hdpi/ic_advanced_white_24dp.webp
deleted file mode 100644
index 5d0e0e494a..0000000000
Binary files a/res/drawable-hdpi/ic_advanced_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_archive_white_24dp.webp b/res/drawable-hdpi/ic_archive_white_24dp.webp
deleted file mode 100644
index f0da0f1375..0000000000
Binary files a/res/drawable-hdpi/ic_archive_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_arrow_back_white_24dp.webp b/res/drawable-hdpi/ic_arrow_back_white_24dp.webp
deleted file mode 100644
index d9abde11d7..0000000000
Binary files a/res/drawable-hdpi/ic_arrow_back_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_brightness_6_white_24dp.webp b/res/drawable-hdpi/ic_brightness_6_white_24dp.webp
deleted file mode 100644
index 7ae08ce552..0000000000
Binary files a/res/drawable-hdpi/ic_brightness_6_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_camera_filled_24.webp b/res/drawable-hdpi/ic_camera_filled_24.webp
deleted file mode 100644
index b14725c514..0000000000
Binary files a/res/drawable-hdpi/ic_camera_filled_24.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_forum_white_24dp.webp b/res/drawable-hdpi/ic_forum_white_24dp.webp
deleted file mode 100644
index 56207353ca..0000000000
Binary files a/res/drawable-hdpi/ic_forum_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_group_grey600_24dp.webp b/res/drawable-hdpi/ic_group_grey600_24dp.webp
deleted file mode 100644
index 74100791df..0000000000
Binary files a/res/drawable-hdpi/ic_group_grey600_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_group_white_24dp.webp b/res/drawable-hdpi/ic_group_white_24dp.webp
deleted file mode 100644
index 206ae08d70..0000000000
Binary files a/res/drawable-hdpi/ic_group_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_laptop_white_24dp.webp b/res/drawable-hdpi/ic_laptop_white_24dp.webp
deleted file mode 100644
index 463871605d..0000000000
Binary files a/res/drawable-hdpi/ic_laptop_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_message_black_18dp.webp b/res/drawable-hdpi/ic_message_black_18dp.webp
deleted file mode 100644
index 3563c71d8d..0000000000
Binary files a/res/drawable-hdpi/ic_message_black_18dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_message_white_24dp.webp b/res/drawable-hdpi/ic_message_white_24dp.webp
deleted file mode 100644
index 514f98609f..0000000000
Binary files a/res/drawable-hdpi/ic_message_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_mic_grey600_24dp.webp b/res/drawable-hdpi/ic_mic_grey600_24dp.webp
deleted file mode 100644
index 9f5c97a76a..0000000000
Binary files a/res/drawable-hdpi/ic_mic_grey600_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_mic_white_24dp.webp b/res/drawable-hdpi/ic_mic_white_24dp.webp
deleted file mode 100644
index 12bc9f12ab..0000000000
Binary files a/res/drawable-hdpi/ic_mic_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_mic_white_48dp.webp b/res/drawable-hdpi/ic_mic_white_48dp.webp
deleted file mode 100644
index cc114e8612..0000000000
Binary files a/res/drawable-hdpi/ic_mic_white_48dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_notifications_white_24dp.webp b/res/drawable-hdpi/ic_notifications_white_24dp.webp
deleted file mode 100644
index b3bb9d8646..0000000000
Binary files a/res/drawable-hdpi/ic_notifications_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_photo_camera_dark.webp b/res/drawable-hdpi/ic_photo_camera_dark.webp
deleted file mode 100644
index 43fe08118f..0000000000
Binary files a/res/drawable-hdpi/ic_photo_camera_dark.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_photo_camera_light.webp b/res/drawable-hdpi/ic_photo_camera_light.webp
deleted file mode 100644
index 7640ec6e0a..0000000000
Binary files a/res/drawable-hdpi/ic_photo_camera_light.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_photo_camera_white_48dp.webp b/res/drawable-hdpi/ic_photo_camera_white_48dp.webp
deleted file mode 100644
index f411c03447..0000000000
Binary files a/res/drawable-hdpi/ic_photo_camera_white_48dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_profile_default.webp b/res/drawable-hdpi/ic_profile_default.webp
deleted file mode 100644
index cd4271ec6d..0000000000
Binary files a/res/drawable-hdpi/ic_profile_default.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_security_white_24dp.webp b/res/drawable-hdpi/ic_security_white_24dp.webp
deleted file mode 100644
index fb9e59ec0c..0000000000
Binary files a/res/drawable-hdpi/ic_security_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_send_push.webp b/res/drawable-hdpi/ic_send_push.webp
deleted file mode 100644
index 15f15bf559..0000000000
Binary files a/res/drawable-hdpi/ic_send_push.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_send_push_white_24dp.webp b/res/drawable-hdpi/ic_send_push_white_24dp.webp
deleted file mode 100644
index b8bbb283dd..0000000000
Binary files a/res/drawable-hdpi/ic_send_push_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_send_sms_insecure.webp b/res/drawable-hdpi/ic_send_sms_insecure.webp
deleted file mode 100644
index a8f8614463..0000000000
Binary files a/res/drawable-hdpi/ic_send_sms_insecure.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_send_sms_insecure_dark.webp b/res/drawable-hdpi/ic_send_sms_insecure_dark.webp
deleted file mode 100644
index 2e321fd69f..0000000000
Binary files a/res/drawable-hdpi/ic_send_sms_insecure_dark.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_send_sms_white_24dp.webp b/res/drawable-hdpi/ic_send_sms_white_24dp.webp
deleted file mode 100644
index 7a88a2cd24..0000000000
Binary files a/res/drawable-hdpi/ic_send_sms_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_textsms_white_24dp.webp b/res/drawable-hdpi/ic_textsms_white_24dp.webp
deleted file mode 100644
index f40a68510a..0000000000
Binary files a/res/drawable-hdpi/ic_textsms_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_timer.webp b/res/drawable-hdpi/ic_timer.webp
deleted file mode 100644
index b26a7a193b..0000000000
Binary files a/res/drawable-hdpi/ic_timer.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_timer_disabled.webp b/res/drawable-hdpi/ic_timer_disabled.webp
deleted file mode 100644
index e198e090cf..0000000000
Binary files a/res/drawable-hdpi/ic_timer_disabled.webp and /dev/null differ
diff --git a/res/drawable-hdpi/ic_timer_off_white_24dp.webp b/res/drawable-hdpi/ic_timer_off_white_24dp.webp
deleted file mode 100644
index 69b31614cd..0000000000
Binary files a/res/drawable-hdpi/ic_timer_off_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-hdpi/quick_camera_dark.webp b/res/drawable-hdpi/quick_camera_dark.webp
deleted file mode 100644
index 20b493ab10..0000000000
Binary files a/res/drawable-hdpi/quick_camera_dark.webp and /dev/null differ
diff --git a/res/drawable-hdpi/quick_camera_light.webp b/res/drawable-hdpi/quick_camera_light.webp
deleted file mode 100644
index ccdc4a26b7..0000000000
Binary files a/res/drawable-hdpi/quick_camera_light.webp and /dev/null differ
diff --git a/res/drawable-hdpi/timer00.webp b/res/drawable-hdpi/timer00.webp
deleted file mode 100644
index 9376ef811a..0000000000
Binary files a/res/drawable-hdpi/timer00.webp and /dev/null differ
diff --git a/res/drawable-hdpi/timer05.webp b/res/drawable-hdpi/timer05.webp
deleted file mode 100644
index 91aee6d80d..0000000000
Binary files a/res/drawable-hdpi/timer05.webp and /dev/null differ
diff --git a/res/drawable-hdpi/timer10.webp b/res/drawable-hdpi/timer10.webp
deleted file mode 100644
index 06b92c0def..0000000000
Binary files a/res/drawable-hdpi/timer10.webp and /dev/null differ
diff --git a/res/drawable-hdpi/timer15.webp b/res/drawable-hdpi/timer15.webp
deleted file mode 100644
index cc090f2733..0000000000
Binary files a/res/drawable-hdpi/timer15.webp and /dev/null differ
diff --git a/res/drawable-hdpi/timer20.webp b/res/drawable-hdpi/timer20.webp
deleted file mode 100644
index 5c7010f0ac..0000000000
Binary files a/res/drawable-hdpi/timer20.webp and /dev/null differ
diff --git a/res/drawable-hdpi/timer25.webp b/res/drawable-hdpi/timer25.webp
deleted file mode 100644
index 4326040b8f..0000000000
Binary files a/res/drawable-hdpi/timer25.webp and /dev/null differ
diff --git a/res/drawable-hdpi/timer30.webp b/res/drawable-hdpi/timer30.webp
deleted file mode 100644
index 1fc718744d..0000000000
Binary files a/res/drawable-hdpi/timer30.webp and /dev/null differ
diff --git a/res/drawable-hdpi/timer35.webp b/res/drawable-hdpi/timer35.webp
deleted file mode 100644
index 17b4f81cb3..0000000000
Binary files a/res/drawable-hdpi/timer35.webp and /dev/null differ
diff --git a/res/drawable-hdpi/timer40.webp b/res/drawable-hdpi/timer40.webp
deleted file mode 100644
index 74d5462531..0000000000
Binary files a/res/drawable-hdpi/timer40.webp and /dev/null differ
diff --git a/res/drawable-hdpi/timer45.webp b/res/drawable-hdpi/timer45.webp
deleted file mode 100644
index 4da70e3e1f..0000000000
Binary files a/res/drawable-hdpi/timer45.webp and /dev/null differ
diff --git a/res/drawable-hdpi/timer50.webp b/res/drawable-hdpi/timer50.webp
deleted file mode 100644
index 394707f617..0000000000
Binary files a/res/drawable-hdpi/timer50.webp and /dev/null differ
diff --git a/res/drawable-hdpi/timer55.webp b/res/drawable-hdpi/timer55.webp
deleted file mode 100644
index 595b78dd1a..0000000000
Binary files a/res/drawable-hdpi/timer55.webp and /dev/null differ
diff --git a/res/drawable-hdpi/timer60.webp b/res/drawable-hdpi/timer60.webp
deleted file mode 100644
index 07cb95d031..0000000000
Binary files a/res/drawable-hdpi/timer60.webp and /dev/null differ
diff --git a/res/drawable-ldrtl-hdpi/ic_arrow_back_white_24dp.png b/res/drawable-ldrtl-hdpi/ic_arrow_back_white_24dp.png
deleted file mode 100644
index f517557627..0000000000
Binary files a/res/drawable-ldrtl-hdpi/ic_arrow_back_white_24dp.png and /dev/null differ
diff --git a/res/drawable-ldrtl-mdpi/ic_arrow_back_white_24dp.webp b/res/drawable-ldrtl-mdpi/ic_arrow_back_white_24dp.webp
deleted file mode 100644
index 954666f694..0000000000
Binary files a/res/drawable-ldrtl-mdpi/ic_arrow_back_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_arrow_back_white_24dp.webp b/res/drawable-ldrtl-xhdpi/ic_arrow_back_white_24dp.webp
deleted file mode 100644
index 16f0474833..0000000000
Binary files a/res/drawable-ldrtl-xhdpi/ic_arrow_back_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-ldrtl-xxhdpi/ic_arrow_back_white_24dp.webp b/res/drawable-ldrtl-xxhdpi/ic_arrow_back_white_24dp.webp
deleted file mode 100644
index 338800d3fb..0000000000
Binary files a/res/drawable-ldrtl-xxhdpi/ic_arrow_back_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-ldrtl-xxxhdpi/ic_arrow_back_white_24dp.webp b/res/drawable-ldrtl-xxxhdpi/ic_arrow_back_white_24dp.webp
deleted file mode 100644
index 4b6a162fbe..0000000000
Binary files a/res/drawable-ldrtl-xxxhdpi/ic_arrow_back_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_advanced_white_24dp.webp b/res/drawable-mdpi/ic_advanced_white_24dp.webp
deleted file mode 100644
index e83a38d95b..0000000000
Binary files a/res/drawable-mdpi/ic_advanced_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_archive_white_24dp.webp b/res/drawable-mdpi/ic_archive_white_24dp.webp
deleted file mode 100644
index 8003327556..0000000000
Binary files a/res/drawable-mdpi/ic_archive_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_arrow_back_white_24dp.webp b/res/drawable-mdpi/ic_arrow_back_white_24dp.webp
deleted file mode 100644
index c894fb7b78..0000000000
Binary files a/res/drawable-mdpi/ic_arrow_back_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_brightness_6_white_24dp.webp b/res/drawable-mdpi/ic_brightness_6_white_24dp.webp
deleted file mode 100644
index 02fb77786c..0000000000
Binary files a/res/drawable-mdpi/ic_brightness_6_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_camera_filled_24.webp b/res/drawable-mdpi/ic_camera_filled_24.webp
deleted file mode 100644
index 38e977d2f6..0000000000
Binary files a/res/drawable-mdpi/ic_camera_filled_24.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_forum_white_24dp.webp b/res/drawable-mdpi/ic_forum_white_24dp.webp
deleted file mode 100644
index cbc95cb10d..0000000000
Binary files a/res/drawable-mdpi/ic_forum_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_group_grey600_24dp.webp b/res/drawable-mdpi/ic_group_grey600_24dp.webp
deleted file mode 100644
index 7f3d1527dd..0000000000
Binary files a/res/drawable-mdpi/ic_group_grey600_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_group_white_24dp.webp b/res/drawable-mdpi/ic_group_white_24dp.webp
deleted file mode 100644
index b72b46fec7..0000000000
Binary files a/res/drawable-mdpi/ic_group_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_laptop_white_24dp.webp b/res/drawable-mdpi/ic_laptop_white_24dp.webp
deleted file mode 100644
index e1148de927..0000000000
Binary files a/res/drawable-mdpi/ic_laptop_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_message_black_18dp.webp b/res/drawable-mdpi/ic_message_black_18dp.webp
deleted file mode 100644
index 6ef72cd16e..0000000000
Binary files a/res/drawable-mdpi/ic_message_black_18dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_message_white_24dp.webp b/res/drawable-mdpi/ic_message_white_24dp.webp
deleted file mode 100644
index 96584a0592..0000000000
Binary files a/res/drawable-mdpi/ic_message_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_mic_grey600_24dp.webp b/res/drawable-mdpi/ic_mic_grey600_24dp.webp
deleted file mode 100644
index 4c965c8ed8..0000000000
Binary files a/res/drawable-mdpi/ic_mic_grey600_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_mic_white_24dp.webp b/res/drawable-mdpi/ic_mic_white_24dp.webp
deleted file mode 100644
index 2bd46ef40f..0000000000
Binary files a/res/drawable-mdpi/ic_mic_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_mic_white_48dp.webp b/res/drawable-mdpi/ic_mic_white_48dp.webp
deleted file mode 100644
index 684a73f84b..0000000000
Binary files a/res/drawable-mdpi/ic_mic_white_48dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_notifications_white_24dp.webp b/res/drawable-mdpi/ic_notifications_white_24dp.webp
deleted file mode 100644
index b1923dfbb0..0000000000
Binary files a/res/drawable-mdpi/ic_notifications_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_photo_camera_dark.webp b/res/drawable-mdpi/ic_photo_camera_dark.webp
deleted file mode 100644
index 8277a28c49..0000000000
Binary files a/res/drawable-mdpi/ic_photo_camera_dark.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_photo_camera_light.webp b/res/drawable-mdpi/ic_photo_camera_light.webp
deleted file mode 100644
index 4a310923f4..0000000000
Binary files a/res/drawable-mdpi/ic_photo_camera_light.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_photo_camera_white_48dp.webp b/res/drawable-mdpi/ic_photo_camera_white_48dp.webp
deleted file mode 100644
index 0b171f53b3..0000000000
Binary files a/res/drawable-mdpi/ic_photo_camera_white_48dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_profile_default.webp b/res/drawable-mdpi/ic_profile_default.webp
deleted file mode 100644
index 4705e30a86..0000000000
Binary files a/res/drawable-mdpi/ic_profile_default.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_security_white_24dp.webp b/res/drawable-mdpi/ic_security_white_24dp.webp
deleted file mode 100644
index 7a29da6586..0000000000
Binary files a/res/drawable-mdpi/ic_security_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_send_push.webp b/res/drawable-mdpi/ic_send_push.webp
deleted file mode 100644
index 93a4c04998..0000000000
Binary files a/res/drawable-mdpi/ic_send_push.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_send_push_white_24dp.webp b/res/drawable-mdpi/ic_send_push_white_24dp.webp
deleted file mode 100644
index 09289b8a5e..0000000000
Binary files a/res/drawable-mdpi/ic_send_push_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_send_sms_insecure.webp b/res/drawable-mdpi/ic_send_sms_insecure.webp
deleted file mode 100644
index fedcc76404..0000000000
Binary files a/res/drawable-mdpi/ic_send_sms_insecure.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_send_sms_insecure_dark.webp b/res/drawable-mdpi/ic_send_sms_insecure_dark.webp
deleted file mode 100644
index 25f7cc1a01..0000000000
Binary files a/res/drawable-mdpi/ic_send_sms_insecure_dark.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_send_sms_white_24dp.webp b/res/drawable-mdpi/ic_send_sms_white_24dp.webp
deleted file mode 100644
index 4e9dcd5806..0000000000
Binary files a/res/drawable-mdpi/ic_send_sms_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_textsms_white_24dp.webp b/res/drawable-mdpi/ic_textsms_white_24dp.webp
deleted file mode 100644
index d2e109ca6e..0000000000
Binary files a/res/drawable-mdpi/ic_textsms_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_timer.webp b/res/drawable-mdpi/ic_timer.webp
deleted file mode 100644
index 179ca4992c..0000000000
Binary files a/res/drawable-mdpi/ic_timer.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_timer_disabled.webp b/res/drawable-mdpi/ic_timer_disabled.webp
deleted file mode 100644
index c67b13b058..0000000000
Binary files a/res/drawable-mdpi/ic_timer_disabled.webp and /dev/null differ
diff --git a/res/drawable-mdpi/ic_timer_off_white_24dp.webp b/res/drawable-mdpi/ic_timer_off_white_24dp.webp
deleted file mode 100644
index 5083bb1a1c..0000000000
Binary files a/res/drawable-mdpi/ic_timer_off_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-mdpi/quick_camera_dark.webp b/res/drawable-mdpi/quick_camera_dark.webp
deleted file mode 100644
index e54f291a8b..0000000000
Binary files a/res/drawable-mdpi/quick_camera_dark.webp and /dev/null differ
diff --git a/res/drawable-mdpi/quick_camera_light.webp b/res/drawable-mdpi/quick_camera_light.webp
deleted file mode 100644
index e23677aba4..0000000000
Binary files a/res/drawable-mdpi/quick_camera_light.webp and /dev/null differ
diff --git a/res/drawable-mdpi/timer00.webp b/res/drawable-mdpi/timer00.webp
deleted file mode 100644
index 5679c00bda..0000000000
Binary files a/res/drawable-mdpi/timer00.webp and /dev/null differ
diff --git a/res/drawable-mdpi/timer05.webp b/res/drawable-mdpi/timer05.webp
deleted file mode 100644
index dbbc06b152..0000000000
Binary files a/res/drawable-mdpi/timer05.webp and /dev/null differ
diff --git a/res/drawable-mdpi/timer10.webp b/res/drawable-mdpi/timer10.webp
deleted file mode 100644
index cfb786a6ab..0000000000
Binary files a/res/drawable-mdpi/timer10.webp and /dev/null differ
diff --git a/res/drawable-mdpi/timer15.webp b/res/drawable-mdpi/timer15.webp
deleted file mode 100644
index 648c6186b2..0000000000
Binary files a/res/drawable-mdpi/timer15.webp and /dev/null differ
diff --git a/res/drawable-mdpi/timer20.webp b/res/drawable-mdpi/timer20.webp
deleted file mode 100644
index 635b6f0d22..0000000000
Binary files a/res/drawable-mdpi/timer20.webp and /dev/null differ
diff --git a/res/drawable-mdpi/timer25.webp b/res/drawable-mdpi/timer25.webp
deleted file mode 100644
index 0b6b2e691a..0000000000
Binary files a/res/drawable-mdpi/timer25.webp and /dev/null differ
diff --git a/res/drawable-mdpi/timer30.webp b/res/drawable-mdpi/timer30.webp
deleted file mode 100644
index b30f60dcfa..0000000000
Binary files a/res/drawable-mdpi/timer30.webp and /dev/null differ
diff --git a/res/drawable-mdpi/timer35.webp b/res/drawable-mdpi/timer35.webp
deleted file mode 100644
index 9631a4667c..0000000000
Binary files a/res/drawable-mdpi/timer35.webp and /dev/null differ
diff --git a/res/drawable-mdpi/timer40.webp b/res/drawable-mdpi/timer40.webp
deleted file mode 100644
index 58d4346817..0000000000
Binary files a/res/drawable-mdpi/timer40.webp and /dev/null differ
diff --git a/res/drawable-mdpi/timer45.webp b/res/drawable-mdpi/timer45.webp
deleted file mode 100644
index 8147852a7d..0000000000
Binary files a/res/drawable-mdpi/timer45.webp and /dev/null differ
diff --git a/res/drawable-mdpi/timer50.webp b/res/drawable-mdpi/timer50.webp
deleted file mode 100644
index 94d2582553..0000000000
Binary files a/res/drawable-mdpi/timer50.webp and /dev/null differ
diff --git a/res/drawable-mdpi/timer55.webp b/res/drawable-mdpi/timer55.webp
deleted file mode 100644
index 85ee834877..0000000000
Binary files a/res/drawable-mdpi/timer55.webp and /dev/null differ
diff --git a/res/drawable-mdpi/timer60.webp b/res/drawable-mdpi/timer60.webp
deleted file mode 100644
index a40732c59c..0000000000
Binary files a/res/drawable-mdpi/timer60.webp and /dev/null differ
diff --git a/res/drawable-v21/camera_send_button_background.xml b/res/drawable-v21/camera_send_button_background.xml
index 6ef9e5e0cf..bc0ce271cb 100644
--- a/res/drawable-v21/camera_send_button_background.xml
+++ b/res/drawable-v21/camera_send_button_background.xml
@@ -1,7 +1,7 @@
+ android:color="@color/transparent_white_20">
-
diff --git a/res/drawable-v21/media_continue_button_background.xml b/res/drawable-v21/media_continue_button_background.xml
index 6ef9e5e0cf..bc0ce271cb 100644
--- a/res/drawable-v21/media_continue_button_background.xml
+++ b/res/drawable-v21/media_continue_button_background.xml
@@ -1,7 +1,7 @@
+ android:color="@color/transparent_white_20">
-
diff --git a/res/drawable-v21/media_count_button_background.xml b/res/drawable-v21/media_count_button_background.xml
index a5fdc45a06..167a745bc9 100644
--- a/res/drawable-v21/media_count_button_background.xml
+++ b/res/drawable-v21/media_count_button_background.xml
@@ -1,7 +1,7 @@
+ android:color="@color/transparent_white_20">
-
diff --git a/res/drawable-v21/mediarail_button_background.xml b/res/drawable-v21/mediarail_button_background.xml
index e5c03c2a80..777372d475 100644
--- a/res/drawable-v21/mediarail_button_background.xml
+++ b/res/drawable-v21/mediarail_button_background.xml
@@ -1,7 +1,7 @@
+ android:color="@color/transparent_white_20">
-
@@ -13,7 +13,7 @@
-
-
+
diff --git a/res/drawable-v21/sticker_button_dark.xml b/res/drawable-v21/sticker_button_dark.xml
index bbd18b7e9f..faebab0dde 100644
--- a/res/drawable-v21/sticker_button_dark.xml
+++ b/res/drawable-v21/sticker_button_dark.xml
@@ -1,7 +1,7 @@
+ android:color="@color/transparent_white_20">
-
diff --git a/res/drawable-xhdpi/ic_advanced_white_24dp.webp b/res/drawable-xhdpi/ic_advanced_white_24dp.webp
deleted file mode 100644
index ba473bb9e0..0000000000
Binary files a/res/drawable-xhdpi/ic_advanced_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_archive_white_24dp.webp b/res/drawable-xhdpi/ic_archive_white_24dp.webp
deleted file mode 100644
index ad68383426..0000000000
Binary files a/res/drawable-xhdpi/ic_archive_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_arrow_back_white_24dp.webp b/res/drawable-xhdpi/ic_arrow_back_white_24dp.webp
deleted file mode 100644
index 8d43f9934c..0000000000
Binary files a/res/drawable-xhdpi/ic_arrow_back_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_brightness_6_white_24dp.webp b/res/drawable-xhdpi/ic_brightness_6_white_24dp.webp
deleted file mode 100644
index 0f5e2ce20d..0000000000
Binary files a/res/drawable-xhdpi/ic_brightness_6_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_camera_filled_24.webp b/res/drawable-xhdpi/ic_camera_filled_24.webp
deleted file mode 100644
index 3b4d0311e4..0000000000
Binary files a/res/drawable-xhdpi/ic_camera_filled_24.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_forum_white_24dp.webp b/res/drawable-xhdpi/ic_forum_white_24dp.webp
deleted file mode 100644
index dbf2727396..0000000000
Binary files a/res/drawable-xhdpi/ic_forum_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_group_grey600_24dp.webp b/res/drawable-xhdpi/ic_group_grey600_24dp.webp
deleted file mode 100644
index 4b21edac21..0000000000
Binary files a/res/drawable-xhdpi/ic_group_grey600_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_group_white_24dp.webp b/res/drawable-xhdpi/ic_group_white_24dp.webp
deleted file mode 100644
index 48e4ebf1c4..0000000000
Binary files a/res/drawable-xhdpi/ic_group_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_laptop_white_24dp.webp b/res/drawable-xhdpi/ic_laptop_white_24dp.webp
deleted file mode 100644
index 91b8a1c710..0000000000
Binary files a/res/drawable-xhdpi/ic_laptop_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_message_black_18dp.webp b/res/drawable-xhdpi/ic_message_black_18dp.webp
deleted file mode 100644
index 95cd562f0a..0000000000
Binary files a/res/drawable-xhdpi/ic_message_black_18dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_message_white_24dp.webp b/res/drawable-xhdpi/ic_message_white_24dp.webp
deleted file mode 100644
index f7b8cf72f6..0000000000
Binary files a/res/drawable-xhdpi/ic_message_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_mic_grey600_24dp.webp b/res/drawable-xhdpi/ic_mic_grey600_24dp.webp
deleted file mode 100644
index fef604c49e..0000000000
Binary files a/res/drawable-xhdpi/ic_mic_grey600_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_mic_white_24dp.webp b/res/drawable-xhdpi/ic_mic_white_24dp.webp
deleted file mode 100644
index 684a73f84b..0000000000
Binary files a/res/drawable-xhdpi/ic_mic_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_mic_white_48dp.webp b/res/drawable-xhdpi/ic_mic_white_48dp.webp
deleted file mode 100644
index 75ebc4ce49..0000000000
Binary files a/res/drawable-xhdpi/ic_mic_white_48dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_notifications_white_24dp.webp b/res/drawable-xhdpi/ic_notifications_white_24dp.webp
deleted file mode 100644
index c60db08c1c..0000000000
Binary files a/res/drawable-xhdpi/ic_notifications_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_photo_camera_dark.webp b/res/drawable-xhdpi/ic_photo_camera_dark.webp
deleted file mode 100644
index bab6244b27..0000000000
Binary files a/res/drawable-xhdpi/ic_photo_camera_dark.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_photo_camera_light.webp b/res/drawable-xhdpi/ic_photo_camera_light.webp
deleted file mode 100644
index d3deaa6119..0000000000
Binary files a/res/drawable-xhdpi/ic_photo_camera_light.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_photo_camera_white_48dp.webp b/res/drawable-xhdpi/ic_photo_camera_white_48dp.webp
deleted file mode 100644
index 7cd9f52bc4..0000000000
Binary files a/res/drawable-xhdpi/ic_photo_camera_white_48dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_profile_default.webp b/res/drawable-xhdpi/ic_profile_default.webp
deleted file mode 100644
index 188d2d7e92..0000000000
Binary files a/res/drawable-xhdpi/ic_profile_default.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_security_white_24dp.webp b/res/drawable-xhdpi/ic_security_white_24dp.webp
deleted file mode 100644
index 1ff3bd3f34..0000000000
Binary files a/res/drawable-xhdpi/ic_security_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_send_push.webp b/res/drawable-xhdpi/ic_send_push.webp
deleted file mode 100644
index 5003771944..0000000000
Binary files a/res/drawable-xhdpi/ic_send_push.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_send_push_white_24dp.webp b/res/drawable-xhdpi/ic_send_push_white_24dp.webp
deleted file mode 100644
index cecac1586c..0000000000
Binary files a/res/drawable-xhdpi/ic_send_push_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_send_sms_insecure.webp b/res/drawable-xhdpi/ic_send_sms_insecure.webp
deleted file mode 100644
index c990362b76..0000000000
Binary files a/res/drawable-xhdpi/ic_send_sms_insecure.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_send_sms_insecure_dark.webp b/res/drawable-xhdpi/ic_send_sms_insecure_dark.webp
deleted file mode 100644
index 28b19060c8..0000000000
Binary files a/res/drawable-xhdpi/ic_send_sms_insecure_dark.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_send_sms_white_24dp.webp b/res/drawable-xhdpi/ic_send_sms_white_24dp.webp
deleted file mode 100644
index c3f0a88bea..0000000000
Binary files a/res/drawable-xhdpi/ic_send_sms_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_textsms_white_24dp.webp b/res/drawable-xhdpi/ic_textsms_white_24dp.webp
deleted file mode 100644
index 8d8c4c2f44..0000000000
Binary files a/res/drawable-xhdpi/ic_textsms_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_timer.webp b/res/drawable-xhdpi/ic_timer.webp
deleted file mode 100644
index e688a04ac3..0000000000
Binary files a/res/drawable-xhdpi/ic_timer.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_timer_disabled.webp b/res/drawable-xhdpi/ic_timer_disabled.webp
deleted file mode 100644
index e6b40a69d2..0000000000
Binary files a/res/drawable-xhdpi/ic_timer_disabled.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_timer_off_white_24dp.webp b/res/drawable-xhdpi/ic_timer_off_white_24dp.webp
deleted file mode 100644
index a444b2c5f7..0000000000
Binary files a/res/drawable-xhdpi/ic_timer_off_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/quick_camera_dark.webp b/res/drawable-xhdpi/quick_camera_dark.webp
deleted file mode 100644
index 0b171f53b3..0000000000
Binary files a/res/drawable-xhdpi/quick_camera_dark.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/quick_camera_light.webp b/res/drawable-xhdpi/quick_camera_light.webp
deleted file mode 100644
index 340d86cced..0000000000
Binary files a/res/drawable-xhdpi/quick_camera_light.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/timer00.webp b/res/drawable-xhdpi/timer00.webp
deleted file mode 100644
index e8893e585b..0000000000
Binary files a/res/drawable-xhdpi/timer00.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/timer05.webp b/res/drawable-xhdpi/timer05.webp
deleted file mode 100644
index f0b1b48b2b..0000000000
Binary files a/res/drawable-xhdpi/timer05.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/timer10.webp b/res/drawable-xhdpi/timer10.webp
deleted file mode 100644
index 51ec73c7fc..0000000000
Binary files a/res/drawable-xhdpi/timer10.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/timer15.webp b/res/drawable-xhdpi/timer15.webp
deleted file mode 100644
index df403cedab..0000000000
Binary files a/res/drawable-xhdpi/timer15.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/timer20.webp b/res/drawable-xhdpi/timer20.webp
deleted file mode 100644
index 0f6d955c13..0000000000
Binary files a/res/drawable-xhdpi/timer20.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/timer25.webp b/res/drawable-xhdpi/timer25.webp
deleted file mode 100644
index 83ce0b3908..0000000000
Binary files a/res/drawable-xhdpi/timer25.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/timer30.webp b/res/drawable-xhdpi/timer30.webp
deleted file mode 100644
index 0446866e95..0000000000
Binary files a/res/drawable-xhdpi/timer30.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/timer35.webp b/res/drawable-xhdpi/timer35.webp
deleted file mode 100644
index dd38367d76..0000000000
Binary files a/res/drawable-xhdpi/timer35.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/timer40.webp b/res/drawable-xhdpi/timer40.webp
deleted file mode 100644
index 6256585042..0000000000
Binary files a/res/drawable-xhdpi/timer40.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/timer45.webp b/res/drawable-xhdpi/timer45.webp
deleted file mode 100644
index 0003aba6b9..0000000000
Binary files a/res/drawable-xhdpi/timer45.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/timer50.webp b/res/drawable-xhdpi/timer50.webp
deleted file mode 100644
index 9a3396d690..0000000000
Binary files a/res/drawable-xhdpi/timer50.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/timer55.webp b/res/drawable-xhdpi/timer55.webp
deleted file mode 100644
index 179ca4992c..0000000000
Binary files a/res/drawable-xhdpi/timer55.webp and /dev/null differ
diff --git a/res/drawable-xhdpi/timer60.webp b/res/drawable-xhdpi/timer60.webp
deleted file mode 100644
index 4823cb45e7..0000000000
Binary files a/res/drawable-xhdpi/timer60.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_advanced_white_24dp.webp b/res/drawable-xxhdpi/ic_advanced_white_24dp.webp
deleted file mode 100644
index eebdf7937d..0000000000
Binary files a/res/drawable-xxhdpi/ic_advanced_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_archive_white_24dp.webp b/res/drawable-xxhdpi/ic_archive_white_24dp.webp
deleted file mode 100644
index d8df37a368..0000000000
Binary files a/res/drawable-xxhdpi/ic_archive_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_arrow_back_white_24dp.webp b/res/drawable-xxhdpi/ic_arrow_back_white_24dp.webp
deleted file mode 100644
index e830166f13..0000000000
Binary files a/res/drawable-xxhdpi/ic_arrow_back_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_brightness_6_white_24dp.webp b/res/drawable-xxhdpi/ic_brightness_6_white_24dp.webp
deleted file mode 100644
index fe17cc0c8e..0000000000
Binary files a/res/drawable-xxhdpi/ic_brightness_6_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_camera_filled_24.webp b/res/drawable-xxhdpi/ic_camera_filled_24.webp
deleted file mode 100644
index 871e96e75f..0000000000
Binary files a/res/drawable-xxhdpi/ic_camera_filled_24.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_forum_white_24dp.webp b/res/drawable-xxhdpi/ic_forum_white_24dp.webp
deleted file mode 100644
index 65c3ab39fc..0000000000
Binary files a/res/drawable-xxhdpi/ic_forum_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_group_grey600_24dp.webp b/res/drawable-xxhdpi/ic_group_grey600_24dp.webp
deleted file mode 100644
index 749d6e221b..0000000000
Binary files a/res/drawable-xxhdpi/ic_group_grey600_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_group_white_24dp.webp b/res/drawable-xxhdpi/ic_group_white_24dp.webp
deleted file mode 100644
index 6fa7fe9cc0..0000000000
Binary files a/res/drawable-xxhdpi/ic_group_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_laptop_white_24dp.webp b/res/drawable-xxhdpi/ic_laptop_white_24dp.webp
deleted file mode 100644
index 2d5d114eea..0000000000
Binary files a/res/drawable-xxhdpi/ic_laptop_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_message_black_18dp.webp b/res/drawable-xxhdpi/ic_message_black_18dp.webp
deleted file mode 100644
index 16bfc4bb24..0000000000
Binary files a/res/drawable-xxhdpi/ic_message_black_18dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_message_white_24dp.webp b/res/drawable-xxhdpi/ic_message_white_24dp.webp
deleted file mode 100644
index 41c96728fe..0000000000
Binary files a/res/drawable-xxhdpi/ic_message_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_mic_grey600_24dp.webp b/res/drawable-xxhdpi/ic_mic_grey600_24dp.webp
deleted file mode 100644
index 5dbbfc91c4..0000000000
Binary files a/res/drawable-xxhdpi/ic_mic_grey600_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_mic_white_24dp.webp b/res/drawable-xxhdpi/ic_mic_white_24dp.webp
deleted file mode 100644
index cc114e8612..0000000000
Binary files a/res/drawable-xxhdpi/ic_mic_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_mic_white_48dp.webp b/res/drawable-xxhdpi/ic_mic_white_48dp.webp
deleted file mode 100644
index 2e3b51a901..0000000000
Binary files a/res/drawable-xxhdpi/ic_mic_white_48dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_notifications_white_24dp.webp b/res/drawable-xxhdpi/ic_notifications_white_24dp.webp
deleted file mode 100644
index 2dd9d10cea..0000000000
Binary files a/res/drawable-xxhdpi/ic_notifications_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_photo_camera_dark.webp b/res/drawable-xxhdpi/ic_photo_camera_dark.webp
deleted file mode 100644
index 695397ddfa..0000000000
Binary files a/res/drawable-xxhdpi/ic_photo_camera_dark.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_photo_camera_light.webp b/res/drawable-xxhdpi/ic_photo_camera_light.webp
deleted file mode 100644
index 03514c4762..0000000000
Binary files a/res/drawable-xxhdpi/ic_photo_camera_light.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_photo_camera_white_48dp.webp b/res/drawable-xxhdpi/ic_photo_camera_white_48dp.webp
deleted file mode 100644
index f2f24f38cb..0000000000
Binary files a/res/drawable-xxhdpi/ic_photo_camera_white_48dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_profile_default.webp b/res/drawable-xxhdpi/ic_profile_default.webp
deleted file mode 100644
index cf03024aaf..0000000000
Binary files a/res/drawable-xxhdpi/ic_profile_default.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_search_white_24dp.webp b/res/drawable-xxhdpi/ic_search_white_24dp.webp
deleted file mode 100644
index ad73cdb5a1..0000000000
Binary files a/res/drawable-xxhdpi/ic_search_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_security_white_24dp.webp b/res/drawable-xxhdpi/ic_security_white_24dp.webp
deleted file mode 100644
index 5b90b9f1df..0000000000
Binary files a/res/drawable-xxhdpi/ic_security_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_send_push.webp b/res/drawable-xxhdpi/ic_send_push.webp
deleted file mode 100644
index 8ecc8561a0..0000000000
Binary files a/res/drawable-xxhdpi/ic_send_push.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_send_push_white_24dp.webp b/res/drawable-xxhdpi/ic_send_push_white_24dp.webp
deleted file mode 100644
index 4b477685cd..0000000000
Binary files a/res/drawable-xxhdpi/ic_send_push_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_send_sms_insecure.webp b/res/drawable-xxhdpi/ic_send_sms_insecure.webp
deleted file mode 100644
index 91b76b0d57..0000000000
Binary files a/res/drawable-xxhdpi/ic_send_sms_insecure.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_send_sms_insecure_dark.webp b/res/drawable-xxhdpi/ic_send_sms_insecure_dark.webp
deleted file mode 100644
index dae91a059f..0000000000
Binary files a/res/drawable-xxhdpi/ic_send_sms_insecure_dark.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_send_sms_white_24dp.webp b/res/drawable-xxhdpi/ic_send_sms_white_24dp.webp
deleted file mode 100644
index 8cc7b1d6d0..0000000000
Binary files a/res/drawable-xxhdpi/ic_send_sms_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_textsms_white_24dp.webp b/res/drawable-xxhdpi/ic_textsms_white_24dp.webp
deleted file mode 100644
index ab1f8a8c2c..0000000000
Binary files a/res/drawable-xxhdpi/ic_textsms_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_timer.webp b/res/drawable-xxhdpi/ic_timer.webp
deleted file mode 100644
index e609d6e87c..0000000000
Binary files a/res/drawable-xxhdpi/ic_timer.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_timer_disabled.webp b/res/drawable-xxhdpi/ic_timer_disabled.webp
deleted file mode 100644
index 6ff3269496..0000000000
Binary files a/res/drawable-xxhdpi/ic_timer_disabled.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_timer_off_white_24dp.webp b/res/drawable-xxhdpi/ic_timer_off_white_24dp.webp
deleted file mode 100644
index 6c5426093b..0000000000
Binary files a/res/drawable-xxhdpi/ic_timer_off_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/quick_camera_dark.webp b/res/drawable-xxhdpi/quick_camera_dark.webp
deleted file mode 100644
index f411c03447..0000000000
Binary files a/res/drawable-xxhdpi/quick_camera_dark.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/quick_camera_light.webp b/res/drawable-xxhdpi/quick_camera_light.webp
deleted file mode 100644
index c5009ff2b2..0000000000
Binary files a/res/drawable-xxhdpi/quick_camera_light.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/timer00.webp b/res/drawable-xxhdpi/timer00.webp
deleted file mode 100644
index 7265ee3246..0000000000
Binary files a/res/drawable-xxhdpi/timer00.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/timer05.webp b/res/drawable-xxhdpi/timer05.webp
deleted file mode 100644
index 681a1f99de..0000000000
Binary files a/res/drawable-xxhdpi/timer05.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/timer10.webp b/res/drawable-xxhdpi/timer10.webp
deleted file mode 100644
index 0ad46371df..0000000000
Binary files a/res/drawable-xxhdpi/timer10.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/timer15.webp b/res/drawable-xxhdpi/timer15.webp
deleted file mode 100644
index ac86374bd0..0000000000
Binary files a/res/drawable-xxhdpi/timer15.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/timer20.webp b/res/drawable-xxhdpi/timer20.webp
deleted file mode 100644
index cff2b73256..0000000000
Binary files a/res/drawable-xxhdpi/timer20.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/timer25.webp b/res/drawable-xxhdpi/timer25.webp
deleted file mode 100644
index ccc8ebc388..0000000000
Binary files a/res/drawable-xxhdpi/timer25.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/timer30.webp b/res/drawable-xxhdpi/timer30.webp
deleted file mode 100644
index 120b1ec7f1..0000000000
Binary files a/res/drawable-xxhdpi/timer30.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/timer35.webp b/res/drawable-xxhdpi/timer35.webp
deleted file mode 100644
index 4c718632a3..0000000000
Binary files a/res/drawable-xxhdpi/timer35.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/timer40.webp b/res/drawable-xxhdpi/timer40.webp
deleted file mode 100644
index 6b9712bb6a..0000000000
Binary files a/res/drawable-xxhdpi/timer40.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/timer45.webp b/res/drawable-xxhdpi/timer45.webp
deleted file mode 100644
index cfb87952ce..0000000000
Binary files a/res/drawable-xxhdpi/timer45.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/timer50.webp b/res/drawable-xxhdpi/timer50.webp
deleted file mode 100644
index 180efa7d34..0000000000
Binary files a/res/drawable-xxhdpi/timer50.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/timer55.webp b/res/drawable-xxhdpi/timer55.webp
deleted file mode 100644
index b26a7a193b..0000000000
Binary files a/res/drawable-xxhdpi/timer55.webp and /dev/null differ
diff --git a/res/drawable-xxhdpi/timer60.webp b/res/drawable-xxhdpi/timer60.webp
deleted file mode 100644
index 9751f92a7f..0000000000
Binary files a/res/drawable-xxhdpi/timer60.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_advanced_white_24dp.webp b/res/drawable-xxxhdpi/ic_advanced_white_24dp.webp
deleted file mode 100644
index dc34ed40dc..0000000000
Binary files a/res/drawable-xxxhdpi/ic_advanced_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_archive_white_24dp.webp b/res/drawable-xxxhdpi/ic_archive_white_24dp.webp
deleted file mode 100644
index 8c31168fff..0000000000
Binary files a/res/drawable-xxxhdpi/ic_archive_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_arrow_back_white_24dp.webp b/res/drawable-xxxhdpi/ic_arrow_back_white_24dp.webp
deleted file mode 100644
index f49281e184..0000000000
Binary files a/res/drawable-xxxhdpi/ic_arrow_back_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_brightness_6_white_24dp.webp b/res/drawable-xxxhdpi/ic_brightness_6_white_24dp.webp
deleted file mode 100644
index 113e60a274..0000000000
Binary files a/res/drawable-xxxhdpi/ic_brightness_6_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_camera_filled_24.webp b/res/drawable-xxxhdpi/ic_camera_filled_24.webp
deleted file mode 100644
index 421483ebe7..0000000000
Binary files a/res/drawable-xxxhdpi/ic_camera_filled_24.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_forum_white_24dp.webp b/res/drawable-xxxhdpi/ic_forum_white_24dp.webp
deleted file mode 100644
index 33b71a5336..0000000000
Binary files a/res/drawable-xxxhdpi/ic_forum_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_laptop_white_24dp.webp b/res/drawable-xxxhdpi/ic_laptop_white_24dp.webp
deleted file mode 100644
index 250f321caf..0000000000
Binary files a/res/drawable-xxxhdpi/ic_laptop_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_message_black_18dp.webp b/res/drawable-xxxhdpi/ic_message_black_18dp.webp
deleted file mode 100644
index ae5682511f..0000000000
Binary files a/res/drawable-xxxhdpi/ic_message_black_18dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_message_white_24dp.webp b/res/drawable-xxxhdpi/ic_message_white_24dp.webp
deleted file mode 100644
index 215d25e3ef..0000000000
Binary files a/res/drawable-xxxhdpi/ic_message_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_mic_grey600_24dp.webp b/res/drawable-xxxhdpi/ic_mic_grey600_24dp.webp
deleted file mode 100644
index 4ba3453bcd..0000000000
Binary files a/res/drawable-xxxhdpi/ic_mic_grey600_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_mic_white_24dp.webp b/res/drawable-xxxhdpi/ic_mic_white_24dp.webp
deleted file mode 100644
index 75ebc4ce49..0000000000
Binary files a/res/drawable-xxxhdpi/ic_mic_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_mic_white_48dp.webp b/res/drawable-xxxhdpi/ic_mic_white_48dp.webp
deleted file mode 100644
index bc9a008261..0000000000
Binary files a/res/drawable-xxxhdpi/ic_mic_white_48dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_notifications_white_24dp.webp b/res/drawable-xxxhdpi/ic_notifications_white_24dp.webp
deleted file mode 100644
index 182ba41d74..0000000000
Binary files a/res/drawable-xxxhdpi/ic_notifications_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_photo_camera_dark.webp b/res/drawable-xxxhdpi/ic_photo_camera_dark.webp
deleted file mode 100644
index f2f24f38cb..0000000000
Binary files a/res/drawable-xxxhdpi/ic_photo_camera_dark.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_photo_camera_light.webp b/res/drawable-xxxhdpi/ic_photo_camera_light.webp
deleted file mode 100644
index 5f0322ba0d..0000000000
Binary files a/res/drawable-xxxhdpi/ic_photo_camera_light.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_photo_camera_white_48dp.webp b/res/drawable-xxxhdpi/ic_photo_camera_white_48dp.webp
deleted file mode 100644
index 73c7078c25..0000000000
Binary files a/res/drawable-xxxhdpi/ic_photo_camera_white_48dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_profile_default.webp b/res/drawable-xxxhdpi/ic_profile_default.webp
deleted file mode 100644
index 844422e199..0000000000
Binary files a/res/drawable-xxxhdpi/ic_profile_default.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_security_white_24dp.webp b/res/drawable-xxxhdpi/ic_security_white_24dp.webp
deleted file mode 100644
index 8055855f44..0000000000
Binary files a/res/drawable-xxxhdpi/ic_security_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_send_push_white_24dp.webp b/res/drawable-xxxhdpi/ic_send_push_white_24dp.webp
deleted file mode 100644
index 4a4740c318..0000000000
Binary files a/res/drawable-xxxhdpi/ic_send_push_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_send_sms_white_24dp.webp b/res/drawable-xxxhdpi/ic_send_sms_white_24dp.webp
deleted file mode 100644
index a1f9754de5..0000000000
Binary files a/res/drawable-xxxhdpi/ic_send_sms_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_textsms_white_24dp.webp b/res/drawable-xxxhdpi/ic_textsms_white_24dp.webp
deleted file mode 100644
index 691fc8d4fa..0000000000
Binary files a/res/drawable-xxxhdpi/ic_textsms_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_timer.webp b/res/drawable-xxxhdpi/ic_timer.webp
deleted file mode 100644
index 9931254612..0000000000
Binary files a/res/drawable-xxxhdpi/ic_timer.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_timer_disabled.webp b/res/drawable-xxxhdpi/ic_timer_disabled.webp
deleted file mode 100644
index e615efa5bf..0000000000
Binary files a/res/drawable-xxxhdpi/ic_timer_disabled.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_timer_off_white_24dp.webp b/res/drawable-xxxhdpi/ic_timer_off_white_24dp.webp
deleted file mode 100644
index 40c342bd33..0000000000
Binary files a/res/drawable-xxxhdpi/ic_timer_off_white_24dp.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/timer00.webp b/res/drawable-xxxhdpi/timer00.webp
deleted file mode 100644
index b71c04ee5c..0000000000
Binary files a/res/drawable-xxxhdpi/timer00.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/timer05.webp b/res/drawable-xxxhdpi/timer05.webp
deleted file mode 100644
index 167f46877c..0000000000
Binary files a/res/drawable-xxxhdpi/timer05.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/timer10.webp b/res/drawable-xxxhdpi/timer10.webp
deleted file mode 100644
index d8613b3183..0000000000
Binary files a/res/drawable-xxxhdpi/timer10.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/timer15.webp b/res/drawable-xxxhdpi/timer15.webp
deleted file mode 100644
index 35a4cb610e..0000000000
Binary files a/res/drawable-xxxhdpi/timer15.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/timer20.webp b/res/drawable-xxxhdpi/timer20.webp
deleted file mode 100644
index 009f06312f..0000000000
Binary files a/res/drawable-xxxhdpi/timer20.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/timer25.webp b/res/drawable-xxxhdpi/timer25.webp
deleted file mode 100644
index d2aaaae5b4..0000000000
Binary files a/res/drawable-xxxhdpi/timer25.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/timer30.webp b/res/drawable-xxxhdpi/timer30.webp
deleted file mode 100644
index b0f2536193..0000000000
Binary files a/res/drawable-xxxhdpi/timer30.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/timer35.webp b/res/drawable-xxxhdpi/timer35.webp
deleted file mode 100644
index 97e7ac8e2a..0000000000
Binary files a/res/drawable-xxxhdpi/timer35.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/timer40.webp b/res/drawable-xxxhdpi/timer40.webp
deleted file mode 100644
index 9336b36e0f..0000000000
Binary files a/res/drawable-xxxhdpi/timer40.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/timer45.webp b/res/drawable-xxxhdpi/timer45.webp
deleted file mode 100644
index 1177dcad52..0000000000
Binary files a/res/drawable-xxxhdpi/timer45.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/timer50.webp b/res/drawable-xxxhdpi/timer50.webp
deleted file mode 100644
index b2f1bb26f4..0000000000
Binary files a/res/drawable-xxxhdpi/timer50.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/timer55.webp b/res/drawable-xxxhdpi/timer55.webp
deleted file mode 100644
index e688a04ac3..0000000000
Binary files a/res/drawable-xxxhdpi/timer55.webp and /dev/null differ
diff --git a/res/drawable-xxxhdpi/timer60.webp b/res/drawable-xxxhdpi/timer60.webp
deleted file mode 100644
index bdc1845946..0000000000
Binary files a/res/drawable-xxxhdpi/timer60.webp and /dev/null differ
diff --git a/res/drawable/attachment_selector_shadow.xml b/res/drawable/attachment_selector_shadow.xml
index 34e2aa8cd4..df2da70362 100644
--- a/res/drawable/attachment_selector_shadow.xml
+++ b/res/drawable/attachment_selector_shadow.xml
@@ -4,7 +4,7 @@
android:shape="rectangle">
diff --git a/res/drawable/avatar_gradient_dark.xml b/res/drawable/avatar_gradient_dark.xml
index 468abd48a7..500a23e552 100644
--- a/res/drawable/avatar_gradient_dark.xml
+++ b/res/drawable/avatar_gradient_dark.xml
@@ -5,7 +5,7 @@
\ No newline at end of file
diff --git a/res/drawable/avatar_gradient_light.xml b/res/drawable/avatar_gradient_light.xml
index bb0a83db30..15b0f62fd3 100644
--- a/res/drawable/avatar_gradient_light.xml
+++ b/res/drawable/avatar_gradient_light.xml
@@ -5,7 +5,7 @@
\ No newline at end of file
diff --git a/res/drawable/contact_list_divider_light.xml b/res/drawable/contact_list_divider_light.xml
index 9846561369..6157621fed 100644
--- a/res/drawable/contact_list_divider_light.xml
+++ b/res/drawable/contact_list_divider_light.xml
@@ -11,7 +11,7 @@
-
-
+
diff --git a/res/drawable/conversation_list_divider_shape.xml b/res/drawable/conversation_list_divider_shape.xml
index 726ef9eaea..0581817d13 100644
--- a/res/drawable/conversation_list_divider_shape.xml
+++ b/res/drawable/conversation_list_divider_shape.xml
@@ -2,7 +2,7 @@
-
-
+
diff --git a/res/drawable/ic_advanced_24.xml b/res/drawable/ic_advanced_24.xml
new file mode 100644
index 0000000000..97eaae6143
--- /dev/null
+++ b/res/drawable/ic_advanced_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_advanced_24dp.xml b/res/drawable/ic_advanced_24dp.xml
deleted file mode 100644
index 4fb9e1ab03..0000000000
--- a/res/drawable/ic_advanced_24dp.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/res/drawable/ic_appearance_outline_24.xml b/res/drawable/ic_appearance_outline_24.xml
new file mode 100644
index 0000000000..34c5f8b72a
--- /dev/null
+++ b/res/drawable/ic_appearance_outline_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_appearance_solid_24.xml b/res/drawable/ic_appearance_solid_24.xml
new file mode 100644
index 0000000000..3d801eb9f3
--- /dev/null
+++ b/res/drawable/ic_appearance_solid_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_archive_solid_24.xml b/res/drawable/ic_archive_solid_24.xml
new file mode 100644
index 0000000000..bf43d767e6
--- /dev/null
+++ b/res/drawable/ic_archive_solid_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_arrow_left_24.xml b/res/drawable/ic_arrow_left_24.xml
new file mode 100644
index 0000000000..d372b6f355
--- /dev/null
+++ b/res/drawable/ic_arrow_left_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/res/drawable/ic_bell_outline_24.xml b/res/drawable/ic_bell_outline_24.xml
new file mode 100644
index 0000000000..9bfbfaaaae
--- /dev/null
+++ b/res/drawable/ic_bell_outline_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_bell_solid_24.xml b/res/drawable/ic_bell_solid_24.xml
new file mode 100644
index 0000000000..c5130443cd
--- /dev/null
+++ b/res/drawable/ic_bell_solid_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_brightness_6_24dp.xml b/res/drawable/ic_brightness_6_24dp.xml
deleted file mode 100644
index 548ad986f4..0000000000
--- a/res/drawable/ic_brightness_6_24dp.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/res/drawable/ic_camera_outline_24.xml b/res/drawable/ic_camera_outline_24.xml
new file mode 100644
index 0000000000..efa95e1f4f
--- /dev/null
+++ b/res/drawable/ic_camera_outline_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_camera_solid_24.xml b/res/drawable/ic_camera_solid_24.xml
new file mode 100644
index 0000000000..091d06efad
--- /dev/null
+++ b/res/drawable/ic_camera_solid_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_camera_solid_white_24.xml b/res/drawable/ic_camera_solid_white_24.xml
new file mode 100644
index 0000000000..9a7a7fefed
--- /dev/null
+++ b/res/drawable/ic_camera_solid_white_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_check.xml b/res/drawable/ic_check.xml
deleted file mode 100644
index 17aca2af18..0000000000
--- a/res/drawable/ic_check.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/res/drawable/ic_check_24.xml b/res/drawable/ic_check_24.xml
new file mode 100644
index 0000000000..e996c2ae94
--- /dev/null
+++ b/res/drawable/ic_check_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_compose_solid_24.xml b/res/drawable/ic_compose_solid_24.xml
new file mode 100644
index 0000000000..6c06b6e39d
--- /dev/null
+++ b/res/drawable/ic_compose_solid_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_dashboard_24.xml b/res/drawable/ic_dashboard_24.xml
index 1304250ca8..36466e1564 100644
--- a/res/drawable/ic_dashboard_24.xml
+++ b/res/drawable/ic_dashboard_24.xml
@@ -4,6 +4,6 @@
android:viewportWidth="24"
android:viewportHeight="24">
diff --git a/res/drawable/ic_emoji_filled_keyboard_dark.xml b/res/drawable/ic_emoji_filled_keyboard_dark.xml
deleted file mode 100644
index e0429d88fe..0000000000
--- a/res/drawable/ic_emoji_filled_keyboard_dark.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
diff --git a/res/drawable/ic_emoji_filled_keyboard_light.xml b/res/drawable/ic_emoji_filled_keyboard_light.xml
deleted file mode 100644
index ed8a86b40a..0000000000
--- a/res/drawable/ic_emoji_filled_keyboard_light.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
diff --git a/res/drawable/ic_emoji_smiley_outline_24.xml b/res/drawable/ic_emoji_smiley_outline_24.xml
new file mode 100644
index 0000000000..f91dbdb6e8
--- /dev/null
+++ b/res/drawable/ic_emoji_smiley_outline_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_emoji_smiley_solid_24.xml b/res/drawable/ic_emoji_smiley_solid_24.xml
new file mode 100644
index 0000000000..cdd980226f
--- /dev/null
+++ b/res/drawable/ic_emoji_smiley_solid_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_forum_24dp.xml b/res/drawable/ic_forum_24dp.xml
deleted file mode 100644
index e48c05fd42..0000000000
--- a/res/drawable/ic_forum_24dp.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/res/drawable/ic_group_large.xml b/res/drawable/ic_group_large.xml
index b06cdd7788..77121f8664 100644
--- a/res/drawable/ic_group_large.xml
+++ b/res/drawable/ic_group_large.xml
@@ -3,5 +3,5 @@
android:viewportHeight="24.0"
android:viewportWidth="24.0"
xmlns:android="http://schemas.android.com/apk/res/android">
-
+
diff --git a/res/drawable/ic_group_outline_20.xml b/res/drawable/ic_group_outline_20.xml
new file mode 100644
index 0000000000..417d222d0a
--- /dev/null
+++ b/res/drawable/ic_group_outline_20.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_group_outline_24.xml b/res/drawable/ic_group_outline_24.xml
new file mode 100644
index 0000000000..a5f6b82565
--- /dev/null
+++ b/res/drawable/ic_group_outline_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_group_outline_40.xml b/res/drawable/ic_group_outline_40.xml
new file mode 100644
index 0000000000..ea3278892c
--- /dev/null
+++ b/res/drawable/ic_group_outline_40.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_group_solid_24.xml b/res/drawable/ic_group_solid_24.xml
new file mode 100644
index 0000000000..546a8dd273
--- /dev/null
+++ b/res/drawable/ic_group_solid_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_group_solid_highlight_24.xml b/res/drawable/ic_group_solid_highlight_24.xml
new file mode 100644
index 0000000000..ff168f5aed
--- /dev/null
+++ b/res/drawable/ic_group_solid_highlight_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_laptop_24dp.xml b/res/drawable/ic_laptop_24dp.xml
deleted file mode 100644
index bad7920f97..0000000000
--- a/res/drawable/ic_laptop_24dp.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/res/drawable/ic_linked_devices_24.xml b/res/drawable/ic_linked_devices_24.xml
new file mode 100644
index 0000000000..0ccf29914e
--- /dev/null
+++ b/res/drawable/ic_linked_devices_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_lock_outline_24.xml b/res/drawable/ic_lock_outline_24.xml
new file mode 100644
index 0000000000..2b480fec3c
--- /dev/null
+++ b/res/drawable/ic_lock_outline_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_lock_solid_24.xml b/res/drawable/ic_lock_solid_24.xml
new file mode 100644
index 0000000000..6c6c64c098
--- /dev/null
+++ b/res/drawable/ic_lock_solid_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_message_outline_24.xml b/res/drawable/ic_message_outline_24.xml
new file mode 100644
index 0000000000..dd19aea775
--- /dev/null
+++ b/res/drawable/ic_message_outline_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_message_solid_24.xml b/res/drawable/ic_message_solid_24.xml
new file mode 100644
index 0000000000..fd1d44840c
--- /dev/null
+++ b/res/drawable/ic_message_solid_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_mic_filled_24.xml b/res/drawable/ic_mic_filled_24.xml
deleted file mode 100644
index acffc548c3..0000000000
--- a/res/drawable/ic_mic_filled_24.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/res/drawable/ic_mic_outline_24.xml b/res/drawable/ic_mic_outline_24.xml
new file mode 100644
index 0000000000..e8369e31f8
--- /dev/null
+++ b/res/drawable/ic_mic_outline_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_mic_solid_24.xml b/res/drawable/ic_mic_solid_24.xml
new file mode 100644
index 0000000000..5cc1005601
--- /dev/null
+++ b/res/drawable/ic_mic_solid_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_more_vert_24.xml b/res/drawable/ic_more_vert_24.xml
new file mode 100644
index 0000000000..961145fced
--- /dev/null
+++ b/res/drawable/ic_more_vert_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_notifications_24dp.xml b/res/drawable/ic_notifications_24dp.xml
deleted file mode 100644
index 56cd14d7a2..0000000000
--- a/res/drawable/ic_notifications_24dp.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/res/drawable/ic_person_large.xml b/res/drawable/ic_person_large.xml
index c3324be1de..ce4ca2af7c 100644
--- a/res/drawable/ic_person_large.xml
+++ b/res/drawable/ic_person_large.xml
@@ -1,4 +1,4 @@
-
+
diff --git a/res/drawable/ic_photo_outline_24.xml b/res/drawable/ic_photo_outline_24.xml
new file mode 100644
index 0000000000..d413c17662
--- /dev/null
+++ b/res/drawable/ic_photo_outline_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_photo_solid_24.xml b/res/drawable/ic_photo_solid_24.xml
new file mode 100644
index 0000000000..6859b771c9
--- /dev/null
+++ b/res/drawable/ic_photo_solid_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_plus_24.xml b/res/drawable/ic_plus_24.xml
index d287574e12..a3b175adac 100644
--- a/res/drawable/ic_plus_24.xml
+++ b/res/drawable/ic_plus_24.xml
@@ -4,6 +4,6 @@
android:viewportWidth="24"
android:viewportHeight="24">
+ android:fillColor="?icon_tint"
+ android:pathData="M21,11.25l-8.25,0l0,-8.25l-1.5,0l0,8.25l-8.25,0l0,1.5l8.25,0l0,8.25l1.5,0l0,-8.25l8.25,0l0,-1.5z"/>
diff --git a/res/drawable/ic_profile_outline_20.xml b/res/drawable/ic_profile_outline_20.xml
new file mode 100644
index 0000000000..83dd435e83
--- /dev/null
+++ b/res/drawable/ic_profile_outline_20.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_profile_outline_40.xml b/res/drawable/ic_profile_outline_40.xml
new file mode 100644
index 0000000000..c323a7961a
--- /dev/null
+++ b/res/drawable/ic_profile_outline_40.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_safety_number_outline_24.xml b/res/drawable/ic_safety_number_outline_24.xml
new file mode 100644
index 0000000000..efea29523e
--- /dev/null
+++ b/res/drawable/ic_safety_number_outline_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_safety_number_solid_24.xml b/res/drawable/ic_safety_number_solid_24.xml
new file mode 100644
index 0000000000..35802774de
--- /dev/null
+++ b/res/drawable/ic_safety_number_solid_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_search_24.xml b/res/drawable/ic_search_24.xml
new file mode 100644
index 0000000000..3e6bb3a2f6
--- /dev/null
+++ b/res/drawable/ic_search_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_search_dark_24.xml b/res/drawable/ic_search_dark_24.xml
new file mode 100644
index 0000000000..b24a3f514d
--- /dev/null
+++ b/res/drawable/ic_search_dark_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_security_24dp.xml b/res/drawable/ic_security_24dp.xml
deleted file mode 100644
index 93bd6f8139..0000000000
--- a/res/drawable/ic_security_24dp.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/res/drawable/ic_send_lock_24.xml b/res/drawable/ic_send_lock_24.xml
new file mode 100644
index 0000000000..3e61677967
--- /dev/null
+++ b/res/drawable/ic_send_lock_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_send_unlock_24.xml b/res/drawable/ic_send_unlock_24.xml
new file mode 100644
index 0000000000..cedd90d5f4
--- /dev/null
+++ b/res/drawable/ic_send_unlock_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_sticker_filled.xml b/res/drawable/ic_sticker_filled.xml
deleted file mode 100644
index 9b4b5c566a..0000000000
--- a/res/drawable/ic_sticker_filled.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/res/drawable/ic_sticker_filled_keyboard_dark.xml b/res/drawable/ic_sticker_filled_keyboard_dark.xml
deleted file mode 100644
index b8a968b034..0000000000
--- a/res/drawable/ic_sticker_filled_keyboard_dark.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/res/drawable/ic_sticker_filled_keyboard_light.xml b/res/drawable/ic_sticker_filled_keyboard_light.xml
deleted file mode 100644
index d4db977f52..0000000000
--- a/res/drawable/ic_sticker_filled_keyboard_light.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/res/drawable/ic_sticker_outline.xml b/res/drawable/ic_sticker_outline.xml
deleted file mode 100644
index d2f6e5bb03..0000000000
--- a/res/drawable/ic_sticker_outline.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/res/drawable/ic_sticker_outline_24.xml b/res/drawable/ic_sticker_outline_24.xml
new file mode 100644
index 0000000000..dee43bb641
--- /dev/null
+++ b/res/drawable/ic_sticker_outline_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_sticker_solid_24.xml b/res/drawable/ic_sticker_solid_24.xml
new file mode 100644
index 0000000000..dcd2d4988c
--- /dev/null
+++ b/res/drawable/ic_sticker_solid_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_textsms_24dp.xml b/res/drawable/ic_textsms_24dp.xml
deleted file mode 100644
index 65acf67952..0000000000
--- a/res/drawable/ic_textsms_24dp.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/res/drawable/ic_timer_00_16.xml b/res/drawable/ic_timer_00_16.xml
new file mode 100644
index 0000000000..f463401975
--- /dev/null
+++ b/res/drawable/ic_timer_00_16.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_timer_05_16.xml b/res/drawable/ic_timer_05_16.xml
new file mode 100644
index 0000000000..62ed8fbf59
--- /dev/null
+++ b/res/drawable/ic_timer_05_16.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_timer_10_16.xml b/res/drawable/ic_timer_10_16.xml
new file mode 100644
index 0000000000..88b3bf4e2b
--- /dev/null
+++ b/res/drawable/ic_timer_10_16.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_timer_15_16.xml b/res/drawable/ic_timer_15_16.xml
new file mode 100644
index 0000000000..3f0511a893
--- /dev/null
+++ b/res/drawable/ic_timer_15_16.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_timer_20_16.xml b/res/drawable/ic_timer_20_16.xml
new file mode 100644
index 0000000000..d430c39ed8
--- /dev/null
+++ b/res/drawable/ic_timer_20_16.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_timer_24.xml b/res/drawable/ic_timer_24.xml
index a96076ca3c..a21db6542f 100644
--- a/res/drawable/ic_timer_24.xml
+++ b/res/drawable/ic_timer_24.xml
@@ -4,6 +4,6 @@
android:viewportWidth="24"
android:viewportHeight="24">
+ android:fillColor="?icon_tint"
+ android:pathData="M13,14.5a1,1 0,0 1,-2 0L11.5,8h1ZM21,14A9,9 0,1 1,4.935 8.436,1.232 1.232,0 0,1 4,7.25 1.25,1.25 0,0 1,5.25 6a1.232,1.232 0,0 1,1.186 0.935,8.948 8.948,0 0,1 4.752,-1.894L10,1h4L12.812,5.041a8.948,8.948 0,0 1,4.752 1.894A1.232,1.232 0,0 1,18.75 6,1.25 1.25,0 0,1 20,7.25a1.232,1.232 0,0 1,-0.935 1.186A8.955,8.955 0,0 1,21 14ZM19.5,14A7.5,7.5 0,1 0,12 21.5,7.509 7.509,0 0,0 19.5,14Z"/>
diff --git a/res/drawable/ic_timer_25_16.xml b/res/drawable/ic_timer_25_16.xml
new file mode 100644
index 0000000000..c72a8049c7
--- /dev/null
+++ b/res/drawable/ic_timer_25_16.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_timer_30_16.xml b/res/drawable/ic_timer_30_16.xml
new file mode 100644
index 0000000000..62229cae5a
--- /dev/null
+++ b/res/drawable/ic_timer_30_16.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_timer_35_16.xml b/res/drawable/ic_timer_35_16.xml
new file mode 100644
index 0000000000..d1c1f210fd
--- /dev/null
+++ b/res/drawable/ic_timer_35_16.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_timer_40_16.xml b/res/drawable/ic_timer_40_16.xml
new file mode 100644
index 0000000000..a131084930
--- /dev/null
+++ b/res/drawable/ic_timer_40_16.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_timer_45_16.xml b/res/drawable/ic_timer_45_16.xml
new file mode 100644
index 0000000000..bde34351cf
--- /dev/null
+++ b/res/drawable/ic_timer_45_16.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_timer_50_16.xml b/res/drawable/ic_timer_50_16.xml
new file mode 100644
index 0000000000..cb7b693dec
--- /dev/null
+++ b/res/drawable/ic_timer_50_16.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_timer_55_16.xml b/res/drawable/ic_timer_55_16.xml
new file mode 100644
index 0000000000..2921935765
--- /dev/null
+++ b/res/drawable/ic_timer_55_16.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_timer_60_16.xml b/res/drawable/ic_timer_60_16.xml
new file mode 100644
index 0000000000..25d801d041
--- /dev/null
+++ b/res/drawable/ic_timer_60_16.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_timer_disabled_24.xml b/res/drawable/ic_timer_disabled_24.xml
index f232761ec5..42bc1e1ba5 100644
--- a/res/drawable/ic_timer_disabled_24.xml
+++ b/res/drawable/ic_timer_disabled_24.xml
@@ -4,6 +4,9 @@
android:viewportWidth="24"
android:viewportHeight="24">
+ android:fillColor="?icon_tint"
+ android:pathData="M12,21.5A7.491,7.491 0,0 1,5.723 9.907L4.648,8.831A8.989,8.989 0,0 0,17.174 21.357l-1.081,-1.08A7.45,7.45 0,0 1,12 21.5Z"/>
+
diff --git a/res/drawable/ic_view_stream_24.xml b/res/drawable/ic_view_stream_24.xml
index 512f3d4005..693b2e4135 100644
--- a/res/drawable/ic_view_stream_24.xml
+++ b/res/drawable/ic_view_stream_24.xml
@@ -4,6 +4,6 @@
android:viewportWidth="24"
android:viewportHeight="24">
diff --git a/res/drawable/ic_x_20.xml b/res/drawable/ic_x_20.xml
new file mode 100644
index 0000000000..543cff1354
--- /dev/null
+++ b/res/drawable/ic_x_20.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/ic_x_dark_20.xml b/res/drawable/ic_x_dark_20.xml
new file mode 100644
index 0000000000..b4d63160b2
--- /dev/null
+++ b/res/drawable/ic_x_dark_20.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/res/drawable/mediapicker_item_border_dark.xml b/res/drawable/mediapicker_item_border_dark.xml
index 4b5741d8ec..8a0a124236 100644
--- a/res/drawable/mediapicker_item_border_dark.xml
+++ b/res/drawable/mediapicker_item_border_dark.xml
@@ -7,6 +7,6 @@
+ android:color="@color/transparent_white_20" />
\ No newline at end of file
diff --git a/res/drawable/mediapicker_item_border_light.xml b/res/drawable/mediapicker_item_border_light.xml
index 6dd07b0d26..159e788236 100644
--- a/res/drawable/mediapicker_item_border_light.xml
+++ b/res/drawable/mediapicker_item_border_light.xml
@@ -5,6 +5,6 @@
+ android:color="@color/transparent_black_20" />
\ No newline at end of file
diff --git a/res/drawable/mediarail_button_background.xml b/res/drawable/mediarail_button_background.xml
index 57a2ce9857..85e1a959b5 100644
--- a/res/drawable/mediarail_button_background.xml
+++ b/res/drawable/mediarail_button_background.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/res/drawable/rounded_rectangle_dark.xml b/res/drawable/rounded_rectangle_dark.xml
index 3fa75a9ab5..1cc1683917 100644
--- a/res/drawable/rounded_rectangle_dark.xml
+++ b/res/drawable/rounded_rectangle_dark.xml
@@ -1,7 +1,7 @@
-
-
+
+
\ No newline at end of file
diff --git a/res/layout/activity_contact_share_edit.xml b/res/layout/activity_contact_share_edit.xml
index 82b6b5dd4a..bee338f86e 100644
--- a/res/layout/activity_contact_share_edit.xml
+++ b/res/layout/activity_contact_share_edit.xml
@@ -1,8 +1,8 @@
-
+ android:layout_height="match_parent"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
\ No newline at end of file
diff --git a/res/layout/activity_map_bottom_sheet_view.xml b/res/layout/activity_map_bottom_sheet_view.xml
index b4c25a9f43..4ff61d5e0f 100755
--- a/res/layout/activity_map_bottom_sheet_view.xml
+++ b/res/layout/activity_map_bottom_sheet_view.xml
@@ -19,7 +19,7 @@
app:fabSize="normal"
app:layout_anchor="@id/root_bottom_sheet"
app:layout_anchorGravity="top|end"
- app:srcCompat="@drawable/ic_check" />
+ app:srcCompat="@drawable/ic_check_24" />
+ app:circleColor="@color/core_grey_50"/>
diff --git a/res/layout/contact_selection_activity.xml b/res/layout/contact_selection_activity.xml
index 748fef44c0..ad2067bca3 100644
--- a/res/layout/contact_selection_activity.xml
+++ b/res/layout/contact_selection_activity.xml
@@ -11,9 +11,9 @@
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
- android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="?attr/actionBarStyle"
+ app:navigationIcon="@drawable/ic_arrow_left_24"
app:contentInsetStartWithNavigation="0dp"/>
diff --git a/res/layout/conversation_fragment.xml b/res/layout/conversation_fragment.xml
index b27986b32b..ee229b09f7 100644
--- a/res/layout/conversation_fragment.xml
+++ b/res/layout/conversation_fragment.xml
@@ -27,7 +27,6 @@
android:layout_marginTop="8dp"
style="@style/Signal.Text.Caption"
android:textColor="?attr/conversation_item_sticky_date_text_color"
- android:textAllCaps="true"
android:background="?attr/conversation_item_sticky_date_background"
android:elevation="9dp"
android:visibility="gone"
diff --git a/res/layout/conversation_input_panel.xml b/res/layout/conversation_input_panel.xml
index c3b3e41f74..36e0eb61d4 100644
--- a/res/layout/conversation_input_panel.xml
+++ b/res/layout/conversation_input_panel.xml
@@ -88,6 +88,7 @@
android:layout_height="@dimen/conversation_compose_height"
android:layout_gravity="bottom"
android:background="?selectableItemBackgroundBorderless"
+ android:tint="?icon_tint"
android:contentDescription="@string/conversation_activity__emoji_toggle_description"
android:paddingEnd="6dp" />
@@ -134,7 +135,7 @@
android:contentDescription="@string/conversation_activity__quick_attachment_drawer_toggle_camera_description"
android:scaleType="fitCenter"
android:tint="?compose_icon_tint"
- app:srcCompat="@drawable/ic_camera_filled_24" />
+ app:srcCompat="?conversation_attach_camera" />
+ android:tint="@color/core_white"
+ app:srcCompat="?conversation_transport_sms_indicator" />
diff --git a/res/layout/conversation_item_footer.xml b/res/layout/conversation_item_footer.xml
index 685d1c44dc..ee0cc0ce43 100644
--- a/res/layout/conversation_item_footer.xml
+++ b/res/layout/conversation_item_footer.xml
@@ -2,54 +2,43 @@
-
+ android:linksClickable="false"
+ style="@style/Signal.Text.Caption.MessageSent"
+ android:textColor="?conversation_item_sent_text_secondary_color"
+ tools:text="30m"/>
-
-
-
-
-
+
+ android:layout_marginStart="4dp"
+ android:layout_gravity="center_vertical"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent" />
diff --git a/res/layout/conversation_item_header.xml b/res/layout/conversation_item_header.xml
index 395d27cf3a..2c440a81ad 100644
--- a/res/layout/conversation_item_header.xml
+++ b/res/layout/conversation_item_header.xml
@@ -17,7 +17,6 @@
android:gravity="center"
style="@style/Signal.Text.Caption"
android:textColor="?conversation_item_update_text_color"
- android:textAllCaps="true"
tools:text="March 1, 2015" />
diff --git a/res/layout/conversation_item_last_seen.xml b/res/layout/conversation_item_last_seen.xml
index 9a5d18dd24..d4ead4da70 100644
--- a/res/layout/conversation_item_last_seen.xml
+++ b/res/layout/conversation_item_last_seen.xml
@@ -10,9 +10,7 @@
@@ -22,7 +20,6 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
style="@style/Signal.Text.Caption"
- android:textAllCaps="true"
android:fontFamily="sans-serif-medium"
android:textColor="?attr/conversation_item_last_seen_text_color"
tools:text="3 unread messages" />
diff --git a/res/layout/conversation_item_received.xml b/res/layout/conversation_item_received.xml
index 0baa3f2d32..172aee6941 100644
--- a/res/layout/conversation_item_received.xml
+++ b/res/layout/conversation_item_received.xml
@@ -36,8 +36,9 @@
@@ -47,7 +48,8 @@
android:layout_width="@dimen/conversation_item_avatar_size"
android:layout_height="@dimen/conversation_item_avatar_size"
android:cropToPadding="true"
- android:contentDescription="@string/conversation_item_received__contact_photo_description" />
+ android:contentDescription="@string/conversation_item_received__contact_photo_description"
+ app:fallbackImageSize="small" />
@@ -78,16 +80,16 @@
+ android:maxLines="1"
+ android:textColor="?conversation_item_received_text_primary_color"
+ android:textStyle="bold"
+ tools:text="+14152222222"
+ tools:visibility="visible" />
+ android:gravity="end"
+ app:footer_text_color="?attr/conversation_subtitle_color"
+ app:footer_icon_color="?attr/conversation_subtitle_color"/>
diff --git a/res/layout/conversation_item_update.xml b/res/layout/conversation_item_update.xml
index 9a2368a43a..f70b86a63d 100644
--- a/res/layout/conversation_item_update.xml
+++ b/res/layout/conversation_item_update.xml
@@ -1,7 +1,7 @@
-
+ app:srcCompat="@drawable/ic_timer_24" />
@@ -70,7 +69,6 @@
android:gravity="center"
android:linksClickable="false"
android:minWidth="15sp"
- android:textAllCaps="true"
android:textColor="?conversation_item_update_text_color"
tools:text="30 min ago" />
diff --git a/res/layout/conversation_list_activity.xml b/res/layout/conversation_list_activity.xml
index 468e90a2b6..4a58843c05 100644
--- a/res/layout/conversation_list_activity.xml
+++ b/res/layout/conversation_list_activity.xml
@@ -1,10 +1,11 @@
+ xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@id/container"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
-
-
-
+
@@ -63,6 +74,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
+ android:background="?attr/conversation_list_toolbar_background"
android:elevation="4dp"
android:visibility="invisible" />
diff --git a/res/layout/conversation_list_fragment.xml b/res/layout/conversation_list_fragment.xml
index 26b4bf0891..59251232fe 100644
--- a/res/layout/conversation_list_fragment.xml
+++ b/res/layout/conversation_list_fragment.xml
@@ -76,7 +76,7 @@
android:layout_marginEnd="16dp"
android:layout_marginBottom="88dp"
android:contentDescription="@string/conversation_list_fragment__open_camera_description"
- android:src="@drawable/ic_camera_filled_24"
+ app:srcCompat="@drawable/ic_camera_solid_24"
android:tint="?conversation_list_camera_icon_tint"
android:focusable="true"
app:backgroundTint="?conversation_list_camera_button_background"/>
@@ -87,7 +87,8 @@
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="16dp"
- android:src="@drawable/ic_create_white_24dp"
+ android:tint="?conversation_list_compose_icon_tint"
+ app:srcCompat="@drawable/ic_compose_solid_24"
android:focusable="true"
android:contentDescription="@string/conversation_list_fragment__fab_content_description"/>
diff --git a/res/layout/conversation_list_item_view.xml b/res/layout/conversation_list_item_view.xml
index 75dde68581..a1591d8a93 100644
--- a/res/layout/conversation_list_item_view.xml
+++ b/res/layout/conversation_list_item_view.xml
@@ -14,17 +14,17 @@
+ android:layout_marginEnd="2dp">
@@ -132,7 +132,6 @@
android:layout_alignBaseline="@+id/from"
style="@style/Signal.Text.Caption"
android:textColor="?attr/conversation_list_item_date_color"
- android:textAllCaps="true"
tools:text="30 mins"
android:singleLine="true"/>
@@ -149,7 +148,6 @@
style="@style/Signal.Text.Caption"
android:text="@string/conversation_list_item_view__archived"
android:textColor="@color/core_white"
- android:textAllCaps="true"
android:background="@drawable/archived_indicator_background" />
diff --git a/res/layout/conversation_title_view.xml b/res/layout/conversation_title_view.xml
index f60b8fc24c..f84f35ffc3 100644
--- a/res/layout/conversation_title_view.xml
+++ b/res/layout/conversation_title_view.xml
@@ -11,17 +11,20 @@
+ android:contentDescription="@string/conversation_item_received__contact_photo_description"
+ app:fallbackImageSize="small" />
diff --git a/res/layout/device_link_fragment.xml b/res/layout/device_link_fragment.xml
index 24c2d3d443..1ff895d8a0 100644
--- a/res/layout/device_link_fragment.xml
+++ b/res/layout/device_link_fragment.xml
@@ -10,7 +10,7 @@
android:layout_height="wrap_content"
android:src="@drawable/ic_devices_white"
android:transitionName="devices"
- android:tint="@color/gray27"
+ android:tint="@color/core_grey_25"
android:layout_marginBottom="25dp"
android:contentDescription="@string/device_link_fragment__link_device"/>
diff --git a/res/layout/document_view.xml b/res/layout/document_view.xml
index 0178e3882c..30c82d343c 100644
--- a/res/layout/document_view.xml
+++ b/res/layout/document_view.xml
@@ -60,7 +60,6 @@
android:textAlignment="center"
android:scaleType="centerInside"
style="@style/Signal.Text.Caption"
- android:textAllCaps="true"
android:textSize="10sp"
android:textColor="@color/core_black"
tools:visibility="visible"
diff --git a/res/layout/expiration_timer_menu.xml b/res/layout/expiration_timer_menu.xml
index f95b562bfb..c6d5a0ec9e 100644
--- a/res/layout/expiration_timer_menu.xml
+++ b/res/layout/expiration_timer_menu.xml
@@ -1,18 +1,20 @@
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ style="?android:attr/actionButtonStyle"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:clickable="true"
+ android:focusable="true"
+ android:gravity="center">
diff --git a/res/layout/giphy_activity_toolbar.xml b/res/layout/giphy_activity_toolbar.xml
index fe55d5c9ad..9e5c983eac 100644
--- a/res/layout/giphy_activity_toolbar.xml
+++ b/res/layout/giphy_activity_toolbar.xml
@@ -14,7 +14,8 @@
android:gravity="center_vertical"
android:clickable="true"
android:background="@drawable/circle_touch_highlight_background"
- android:src="@drawable/ic_search_white_24dp" />
+ android:tint="?conversation_subtitle_color"
+ app:srcCompat="@drawable/ic_search_24" />
+ android:tint="?conversation_subtitle_color"
+ app:srcCompat="@drawable/ic_x" />
-
+
+
+
+ android:clickable="false"
+ app:layout_constraintTop_toBottomOf="@id/toolbar"
+ app:layout_constraintBottom_toBottomOf="parent">
-
+
diff --git a/res/layout/link_preview.xml b/res/layout/link_preview.xml
index 4aa2af8aee..8007891b6a 100644
--- a/res/layout/link_preview.xml
+++ b/res/layout/link_preview.xml
@@ -48,7 +48,6 @@
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="2dp"
- android:textAllCaps="true"
android:textColor="?linkpreview_secondary_text_color"
app:layout_constraintStart_toEndOf="@+id/linkpreview_thumbnail"
app:layout_constraintTop_toBottomOf="@+id/linkpreview_title"
@@ -76,7 +75,7 @@
android:layout_marginEnd="6dp"
android:layout_marginTop="4dp"
android:src="@drawable/ic_close_white_18dp"
- android:tint="@color/gray70"
+ android:tint="@color/core_grey_70"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
diff --git a/res/layout/longmessage_bubble_sent.xml b/res/layout/longmessage_bubble_sent.xml
index 4b28d5ef78..722c7eee1e 100644
--- a/res/layout/longmessage_bubble_sent.xml
+++ b/res/layout/longmessage_bubble_sent.xml
@@ -33,6 +33,7 @@
android:layout_marginStart="@dimen/message_bubble_horizontal_padding"
android:layout_marginEnd="@dimen/message_bubble_horizontal_padding"
android:layout_marginBottom="@dimen/message_bubble_bottom_padding"
+ android:layout_gravity="end"
android:clipChildren="false"
android:clipToPadding="false"
app:footer_text_color="?attr/conversation_item_sent_text_secondary_color"
diff --git a/res/layout/media_keyboard.xml b/res/layout/media_keyboard.xml
index 7dc3906cce..24e33aef0b 100644
--- a/res/layout/media_keyboard.xml
+++ b/res/layout/media_keyboard.xml
@@ -17,7 +17,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:padding="6dp"
- android:src="@drawable/ic_search_white_24dp"
+ app:srcCompat="@drawable/ic_search_24"
android:tint="?media_keyboard_button_color"
android:background="?selectableItemBackgroundBorderless"
android:visibility="invisible"
diff --git a/res/layout/media_preview_activity.xml b/res/layout/media_preview_activity.xml
index b685cbb976..ab190eea15 100644
--- a/res/layout/media_preview_activity.xml
+++ b/res/layout/media_preview_activity.xml
@@ -6,7 +6,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@color/gray95">
+ android:background="@color/core_grey_95">
-
+ android:theme="?attr/actionBarStyle"
+ app:navigationIcon="@drawable/ic_arrow_left_24"/>
+ android:background="@color/transparent_black_60" />
+ android:background="@color/transparent_black_40">
diff --git a/res/layout/microphone_recorder_view.xml b/res/layout/microphone_recorder_view.xml
index ace424f178..96418af9e5 100644
--- a/res/layout/microphone_recorder_view.xml
+++ b/res/layout/microphone_recorder_view.xml
@@ -14,7 +14,7 @@
android:contentDescription="@string/conversation_activity__quick_attachment_drawer_record_and_send_audio_description"
android:scaleType="fitCenter"
android:tint="?compose_icon_tint"
- app:srcCompat="@drawable/ic_mic_filled_24" />
+ app:srcCompat="?quick_mic_icon" />
diff --git a/res/layout/profile_create_activity.xml b/res/layout/profile_create_activity.xml
index 0f849e0c3b..de96ae5f02 100644
--- a/res/layout/profile_create_activity.xml
+++ b/res/layout/profile_create_activity.xml
@@ -57,7 +57,7 @@
android:layout_height="0dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:src="@drawable/ic_profile_default"
+ app:srcCompat="@drawable/ic_profile_outline_40"
android:tint="@color/core_grey_60"
android:transitionName="avatar"
app:layout_constraintBottom_toBottomOf="@+id/avatar_background"
@@ -162,7 +162,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/profile_create_activity__set_later"
- android:textColor="@color/gray50" />
+ android:textColor="@color/core_grey_50" />
diff --git a/res/layout/push_recipients_panel.xml b/res/layout/push_recipients_panel.xml
index e3cc028570..dbbef0842b 100644
--- a/res/layout/push_recipients_panel.xml
+++ b/res/layout/push_recipients_panel.xml
@@ -17,7 +17,8 @@
android:layout_width="fill_parent"/>
+ android:tint="@color/core_grey_70" />
\ No newline at end of file
diff --git a/res/layout/recipient_preference_activity.xml b/res/layout/recipient_preference_activity.xml
index 97715b5773..8ef073ad7d 100644
--- a/res/layout/recipient_preference_activity.xml
+++ b/res/layout/recipient_preference_activity.xml
@@ -11,7 +11,7 @@
@@ -46,9 +46,10 @@
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
- android:theme="@style/TextSecure.LightActionBar"
android:background="@color/transparent"
android:layout_marginTop="24dp"
+ android:theme="@style/TextSecure.DarkActionBar.Conversation"
+ app:navigationIcon="@drawable/ic_arrow_left_24"
app:layout_collapseMode="pin" >
diff --git a/res/layout/recipient_preference_contact_widget.xml b/res/layout/recipient_preference_contact_widget.xml
index 69bce52587..e926d1d691 100644
--- a/res/layout/recipient_preference_contact_widget.xml
+++ b/res/layout/recipient_preference_contact_widget.xml
@@ -1,14 +1,15 @@
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/container"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
diff --git a/res/layout/search_toolbar.xml b/res/layout/search_toolbar.xml
index 228e070bbe..dff984f0f5 100644
--- a/res/layout/search_toolbar.xml
+++ b/res/layout/search_toolbar.xml
@@ -1,10 +1,10 @@
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ tools:parentTag="android.widget.LinearLayout"
+ tools:orientation="vertical">
diff --git a/res/layout/shared_contact_view.xml b/res/layout/shared_contact_view.xml
index 9834b139df..630a4dafa6 100644
--- a/res/layout/shared_contact_view.xml
+++ b/res/layout/shared_contact_view.xml
@@ -62,6 +62,7 @@
android:layout_marginStart="@dimen/message_bubble_horizontal_padding"
android:layout_marginEnd="@dimen/message_bubble_horizontal_padding"
android:layout_marginTop="4dp"
+ android:layout_gravity="end"
android:elevation="9dp"
android:orientation="horizontal" />
diff --git a/res/layout/sticker_keyboard_icon_dark.xml b/res/layout/sticker_keyboard_icon_dark.xml
index d0658ef8cd..5cc4fbce17 100644
--- a/res/layout/sticker_keyboard_icon_dark.xml
+++ b/res/layout/sticker_keyboard_icon_dark.xml
@@ -10,6 +10,6 @@
+ app:srcCompat="@drawable/ic_sticker_solid_24" />
\ No newline at end of file
diff --git a/res/layout/sticker_keyboard_icon_dark_selected.xml b/res/layout/sticker_keyboard_icon_dark_selected.xml
index 42a93ba985..92e78660a2 100644
--- a/res/layout/sticker_keyboard_icon_dark_selected.xml
+++ b/res/layout/sticker_keyboard_icon_dark_selected.xml
@@ -11,6 +11,6 @@
+ app:srcCompat="@drawable/ic_sticker_solid_24" />
\ No newline at end of file
diff --git a/res/layout/sticker_keyboard_icon_light.xml b/res/layout/sticker_keyboard_icon_light.xml
index 5edaeb5b56..bcccbe5da1 100644
--- a/res/layout/sticker_keyboard_icon_light.xml
+++ b/res/layout/sticker_keyboard_icon_light.xml
@@ -10,6 +10,6 @@
+ app:srcCompat="@drawable/ic_sticker_outline_24" />
\ No newline at end of file
diff --git a/res/layout/sticker_keyboard_icon_light_selected.xml b/res/layout/sticker_keyboard_icon_light_selected.xml
index 2fe1507818..d42f3a631c 100644
--- a/res/layout/sticker_keyboard_icon_light_selected.xml
+++ b/res/layout/sticker_keyboard_icon_light_selected.xml
@@ -11,6 +11,6 @@
+ app:srcCompat="@drawable/ic_sticker_outline_24" />
\ No newline at end of file
diff --git a/res/layout/transport_selection_list_item.xml b/res/layout/transport_selection_list_item.xml
index 5cbe10c805..a2cd6fcf7b 100644
--- a/res/layout/transport_selection_list_item.xml
+++ b/res/layout/transport_selection_list_item.xml
@@ -15,7 +15,9 @@
android:padding="7dp"
android:background="@drawable/circle_tintable"
android:contentDescription="@string/transport_selection_list_item__transport_icon"
- tools:src="@drawable/ic_send_push_white_24dp"
+ android:tint="@color/white"
+ tools:src="@drawable/ic_send_lock_24"
+ tools:tint="@color/white"
tools:backgroundTint="@color/textsecure_primary" />
diff --git a/res/layout/webrtc_answer_decline_button.xml b/res/layout/webrtc_answer_decline_button.xml
index 470b2906f1..abfe7cea5c 100644
--- a/res/layout/webrtc_answer_decline_button.xml
+++ b/res/layout/webrtc_answer_decline_button.xml
@@ -17,7 +17,7 @@
android:alpha="0"
android:importantForAccessibility="no"
android:src="@drawable/ic_keyboard_arrow_up_white_36dp"
- android:tint="@color/gray20"
+ android:tint="@color/core_grey_20"
tools:alpha="1" />
\ No newline at end of file
diff --git a/res/menu/camera_contacts.xml b/res/menu/camera_contacts.xml
index 44bcfd2ca4..bea0dd79fa 100644
--- a/res/menu/camera_contacts.xml
+++ b/res/menu/camera_contacts.xml
@@ -6,8 +6,8 @@
\ No newline at end of file
diff --git a/res/menu/conversation.xml b/res/menu/conversation.xml
index 5ff463054e..d836a0acc7 100644
--- a/res/menu/conversation.xml
+++ b/res/menu/conversation.xml
@@ -11,7 +11,7 @@
-
-
diff --git a/res/menu/conversation_list_batch_archive.xml b/res/menu/conversation_list_batch_archive.xml
index 3ed58c44eb..dff285e1b8 100644
--- a/res/menu/conversation_list_batch_archive.xml
+++ b/res/menu/conversation_list_batch_archive.xml
@@ -4,7 +4,7 @@
\ No newline at end of file
diff --git a/res/menu/conversation_list_search.xml b/res/menu/conversation_list_search.xml
index 8eadb1c17a..d75ea2ce23 100644
--- a/res/menu/conversation_list_search.xml
+++ b/res/menu/conversation_list_search.xml
@@ -5,7 +5,7 @@
\ No newline at end of file
diff --git a/res/menu/mediapicker_default.xml b/res/menu/mediapicker_default.xml
index 181edb015f..85210962d3 100644
--- a/res/menu/mediapicker_default.xml
+++ b/res/menu/mediapicker_default.xml
@@ -7,7 +7,7 @@
android:title="@string/MediaPickerActivity__menu_open_camera"
android:id="@+id/mediapicker_menu_camera"
android:visible="true"
- android:icon="@drawable/ic_camera_alt_white_24dp"
+ android:icon="@drawable/ic_camera_solid_24"
app:showAsAction="always" />
\ No newline at end of file
diff --git a/res/values-v21/themes.xml b/res/values-v21/themes.xml
index 709482676f..d60cfabc2e 100644
--- a/res/values-v21/themes.xml
+++ b/res/values-v21/themes.xml
@@ -1,15 +1,25 @@
+
+
+
+
diff --git a/res/values-v23/themes.xml b/res/values-v23/themes.xml
index eeffa95354..77087bdad1 100644
--- a/res/values-v23/themes.xml
+++ b/res/values-v23/themes.xml
@@ -1,5 +1,16 @@
+
+
+
+
+
+
+
+
diff --git a/res/values-v27/themes.xml b/res/values-v27/themes.xml
new file mode 100644
index 0000000000..83d8b03333
--- /dev/null
+++ b/res/values-v27/themes.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 1dd75c9abf..6ca934b5e3 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -1,6 +1,14 @@
+
+
+
+
+
+
+
+
@@ -17,6 +25,7 @@
+
@@ -53,6 +62,9 @@
+
+
+
@@ -110,6 +122,8 @@
+
+
@@ -148,6 +162,15 @@
+
+
+
+
+
+
+
+
+
@@ -204,6 +227,10 @@
+
+
+
+
@@ -368,4 +395,8 @@
+
+
+
+
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 9a98951cb4..2dc4a227da 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -1,6 +1,6 @@
- #ff2090ea
+ @color/core_blue
#ff1c7ac5
#552090ea
#882090ea
@@ -9,42 +9,22 @@
@color/signal_primary_dark
@color/signal_primary_alpha33
- #ffffffff
- #ff000000
- #ffeeeeee
- #ffdddddd
- #ffe0e0e0
- #ffababab
- #ffcccccc
- #ffbbbbbb
- #ff808080
- #ff595959
- #ff4d4d4d
- #ff383838
- #ff111111
+ @color/core_white
+ @color/core_black
- #05000000
- #10000000
- #20000000
- #30000000
- #40000000
- #70000000
- #90000000
+ #0D000000
+ #33000000
+ #66000000
+ #99000000
- #05ffffff
- #10ffffff
- #20ffffff
- #30ffffff
- #40ffffff
- #60ffffff
- #70ffffff
- #aaffffff
- #bbffffff
- #ddffffff
+ #33ffffff
+ #99ffffff
+ #ccffffff
+ #e6ffffff
#32000000
- @color/gray65
+ @color/core_grey_50
#400099cc
#ffffffff
@@ -68,7 +48,7 @@
#44ff2d00
- @color/transparent_black_90
+ @color/transparent_black_40
#90010101
#88000000
diff --git a/res/values/conversation_colors.xml b/res/values/conversation_colors.xml
index 57d250ebb8..cce2d056ac 100644
--- a/res/values/conversation_colors.xml
+++ b/res/values/conversation_colors.xml
@@ -8,7 +8,7 @@
#eba78e
#872600
- #756c53
+ #746c53
#c4b997
#58513c
@@ -29,7 +29,7 @@
#285480
#5951c8
- #c2c1e8
+ #c2c1e7
#4840a0
#862caf
diff --git a/res/values/core_colors.xml b/res/values/core_colors.xml
index abd6bb39dc..fd56c04b23 100644
--- a/res/values/core_colors.xml
+++ b/res/values/core_colors.xml
@@ -2,20 +2,32 @@
#2090ea
#4caf50
+ #ffd624
#f44336
- #ef5350
+
+ #ef5350
#ffffff
#000000
- #f8f9f9
- #eeefef
- #d5d6d6
- #bbbdbe
- #898a8c
- #6b6d70
- #3d3e44
- #23252a
- #17191d
- #0f1012
+ #f6f6f6
+ #e9e9e9
+ #e2e2e2
+ #d4d4d4
+ #c6c6c6
+ #b9b9b9
+ #b3b3b3
+ #9e9e9e
+ #919191
+ #848484
+ #777777
+ #6a6a6a
+ #5e5e5e
+ #525252
+ #474747
+ #3b3b3b
+ #303030
+ #262626
+ #1b1b1b
+ #121212
\ No newline at end of file
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index b5cc41c304..31666fc1fd 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -65,7 +65,7 @@
1dp
20dp
- 36dp
+ 28dp
10dp
4dp
diff --git a/res/values/strings.xml b/res/values/strings.xml
index bf515de6b4..47ce764df3 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -314,7 +314,7 @@
Now
- %d min
+ %dm
Today
Yesterday
@@ -1273,8 +1273,8 @@
- - %d hour
- - %d hours
+ - %dh
+ - %dh
diff --git a/res/values/styles.xml b/res/values/styles.xml
index f2b2b3efa7..62455a5a9c 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -1,5 +1,6 @@
-
+
-
@@ -88,15 +89,62 @@
- 4dp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/values/text_styles.xml b/res/values/text_styles.xml
index 544cd22c75..17121eb0eb 100644
--- a/res/values/text_styles.xml
+++ b/res/values/text_styles.xml
@@ -13,7 +13,7 @@
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 755246c7a2..0f50a319af 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -1,8 +1,12 @@
-
+
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index af30444510..591e8cd926 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -7,30 +7,30 @@
+ android:icon="?attr/message_icon"/>
+ android:icon="?attr/notifications_icon"/>
+ android:icon="?attr/privacy_icon"/>
+ android:icon="?attr/appearance_icon"/>
+ android:icon="?attr/chats_and_media_icon"/>
+ android:icon="?attr/linked_devices_icon"/>
+ android:icon="?attr/advanced_icon"/>
diff --git a/src/org/thoughtcrime/securesms/ApplicationContext.java b/src/org/thoughtcrime/securesms/ApplicationContext.java
index f6828cf8d4..8721677354 100644
--- a/src/org/thoughtcrime/securesms/ApplicationContext.java
+++ b/src/org/thoughtcrime/securesms/ApplicationContext.java
@@ -18,6 +18,7 @@ package org.thoughtcrime.securesms;
import android.annotation.SuppressLint;
+import androidx.appcompat.app.AppCompatDelegate;
import androidx.camera.camera2.Camera2AppConfig;
import androidx.camera.core.CameraX;
import androidx.lifecycle.DefaultLifecycleObserver;
@@ -136,6 +137,11 @@ public class ApplicationContext extends MultiDexApplication implements DefaultLi
initializeCameraX();
NotificationChannels.create(this);
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
+
+ if (Build.VERSION.SDK_INT < 21) {
+ AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
+ }
+
jobManager.beginJobLoop();
}
diff --git a/src/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java b/src/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java
index c6846f893c..0bb355eddb 100644
--- a/src/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java
+++ b/src/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java
@@ -17,19 +17,12 @@
*/
package org.thoughtcrime.securesms;
-import android.annotation.TargetApi;
-import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.content.res.TypedArray;
-import android.graphics.drawable.Drawable;
-import android.os.Build;
-import android.os.Build.VERSION;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
-import androidx.core.graphics.drawable.DrawableCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
@@ -155,10 +148,6 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarA
.setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_DEVICES));
this.findPreference(PREFERENCE_CATEGORY_ADVANCED)
.setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_ADVANCED));
-
- if (VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
- tintIcons(getActivity());
- }
}
@Override
@@ -197,38 +186,6 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarA
}
}
- @TargetApi(11)
- private void tintIcons(Context context) {
- Drawable sms = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.ic_textsms_white_24dp));
- Drawable notifications = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.ic_notifications_white_24dp));
- Drawable privacy = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.ic_security_white_24dp));
- Drawable appearance = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.ic_brightness_6_white_24dp));
- Drawable chats = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.ic_forum_white_24dp));
- Drawable devices = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.ic_laptop_white_24dp));
- Drawable advanced = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.ic_advanced_white_24dp));
-
- int[] tintAttr = new int[]{R.attr.pref_icon_tint};
- TypedArray typedArray = context.obtainStyledAttributes(tintAttr);
- int color = typedArray.getColor(0, 0x0);
- typedArray.recycle();
-
- DrawableCompat.setTint(sms, color);
- DrawableCompat.setTint(notifications, color);
- DrawableCompat.setTint(privacy, color);
- DrawableCompat.setTint(appearance, color);
- DrawableCompat.setTint(chats, color);
- DrawableCompat.setTint(devices, color);
- DrawableCompat.setTint(advanced, color);
-
- this.findPreference(PREFERENCE_CATEGORY_SMS_MMS).setIcon(sms);
- this.findPreference(PREFERENCE_CATEGORY_NOTIFICATIONS).setIcon(notifications);
- this.findPreference(PREFERENCE_CATEGORY_APP_PROTECTION).setIcon(privacy);
- this.findPreference(PREFERENCE_CATEGORY_APPEARANCE).setIcon(appearance);
- this.findPreference(PREFERENCE_CATEGORY_CHATS).setIcon(chats);
- this.findPreference(PREFERENCE_CATEGORY_DEVICES).setIcon(devices);
- this.findPreference(PREFERENCE_CATEGORY_ADVANCED).setIcon(advanced);
- }
-
private class CategoryClickListener implements Preference.OnPreferenceClickListener {
private String category;
diff --git a/src/org/thoughtcrime/securesms/ConversationListActivity.java b/src/org/thoughtcrime/securesms/ConversationListActivity.java
index 7ca96a0860..76a61a9c2b 100644
--- a/src/org/thoughtcrime/securesms/ConversationListActivity.java
+++ b/src/org/thoughtcrime/securesms/ConversationListActivity.java
@@ -28,6 +28,7 @@ import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
import androidx.appcompat.widget.TooltipCompat;
+
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuInflater;
@@ -185,7 +186,7 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
fallbackColor = ContactColors.generateFor(name);
}
- Drawable fallback = new GeneratedContactPhoto(name, R.drawable.ic_profile_default).asDrawable(this, fallbackColor.toAvatarColor(this));
+ Drawable fallback = new GeneratedContactPhoto(name, R.drawable.ic_profile_outline_40).asDrawable(this, fallbackColor.toAvatarColor(this));
GlideApp.with(this)
.load(new ProfileContactPhoto(recipient.getId(), String.valueOf(TextSecurePreferences.getProfileAvatarId(this))))
diff --git a/src/org/thoughtcrime/securesms/ConversationListFragment.java b/src/org/thoughtcrime/securesms/ConversationListFragment.java
index afa42ab965..69f3a87685 100644
--- a/src/org/thoughtcrime/securesms/ConversationListFragment.java
+++ b/src/org/thoughtcrime/securesms/ConversationListFragment.java
@@ -170,7 +170,7 @@ public class ConversationListFragment extends Fragment
Permissions.with(requireActivity())
.request(Manifest.permission.CAMERA)
.ifNecessary()
- .withRationaleDialog(getString(R.string.ConversationActivity_to_capture_photos_and_video_allow_signal_access_to_the_camera), R.drawable.ic_photo_camera_white_48dp)
+ .withRationaleDialog(getString(R.string.ConversationActivity_to_capture_photos_and_video_allow_signal_access_to_the_camera), R.drawable.ic_camera_solid_24)
.withPermanentDenialDialog(getString(R.string.ConversationActivity_signal_needs_the_camera_permission_to_take_photos_or_video))
.onAllGranted(() -> startActivity(MediaSendActivity.buildCameraFirstIntent(requireActivity())))
.onAnyDenied(() -> Toast.makeText(requireContext(), R.string.ConversationActivity_signal_needs_camera_permissions_to_take_photos_or_video, Toast.LENGTH_LONG).show())
@@ -463,6 +463,10 @@ public class ConversationListFragment extends Fragment
getActivity().getWindow().setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar));
}
+ if (Build.VERSION.SDK_INT >= 23) {
+ getActivity().getWindow().getDecorView().setSystemUiVisibility(0);
+ }
+
return true;
}
@@ -492,6 +496,10 @@ public class ConversationListFragment extends Fragment
color.recycle();
}
+ if (Build.VERSION.SDK_INT >= 23) {
+ getActivity().getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
+ }
+
actionMode = null;
}
diff --git a/src/org/thoughtcrime/securesms/CreateProfileActivity.java b/src/org/thoughtcrime/securesms/CreateProfileActivity.java
index 1ff82aeced..e5102529f7 100644
--- a/src/org/thoughtcrime/securesms/CreateProfileActivity.java
+++ b/src/org/thoughtcrime/securesms/CreateProfileActivity.java
@@ -151,7 +151,7 @@ public class CreateProfileActivity extends BaseActionBarActivity {
if (data != null && data.getBooleanExtra("delete", false)) {
avatarBytes = null;
- avatar.setImageDrawable(new ResourceContactPhoto(R.drawable.ic_camera_alt_white_24dp).asDrawable(this, getResources().getColor(R.color.grey_400)));
+ avatar.setImageDrawable(new ResourceContactPhoto(R.drawable.ic_camera_solid_white_24).asDrawable(this, getResources().getColor(R.color.grey_400)));
} else {
AvatarSelection.circularCropImage(this, inputFile, outputFile, R.string.CropImageActivity_profile_avatar);
}
diff --git a/src/org/thoughtcrime/securesms/DeviceActivity.java b/src/org/thoughtcrime/securesms/DeviceActivity.java
index 2ebb908962..fdb7549a2c 100644
--- a/src/org/thoughtcrime/securesms/DeviceActivity.java
+++ b/src/org/thoughtcrime/securesms/DeviceActivity.java
@@ -16,6 +16,7 @@ import android.widget.Button;
import android.widget.Toast;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
import org.thoughtcrime.securesms.crypto.IdentityKeyUtil;
import org.thoughtcrime.securesms.crypto.ProfileKeyUtil;
@@ -61,6 +62,7 @@ public class DeviceActivity extends PassphraseRequiredActionBarActivity
@Override
public void onCreate(Bundle bundle, boolean ready) {
+ getSupportActionBar().setHomeAsUpIndicator(ContextCompat.getDrawable(this, R.drawable.ic_arrow_left_24));
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle(R.string.AndroidManifest__linked_devices);
this.deviceAddFragment = new DeviceAddFragment();
diff --git a/src/org/thoughtcrime/securesms/GroupCreateActivity.java b/src/org/thoughtcrime/securesms/GroupCreateActivity.java
index 24b26815a5..bd6ba87124 100644
--- a/src/org/thoughtcrime/securesms/GroupCreateActivity.java
+++ b/src/org/thoughtcrime/securesms/GroupCreateActivity.java
@@ -20,11 +20,13 @@ package org.thoughtcrime.securesms;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
+import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import android.text.TextUtils;
import org.thoughtcrime.securesms.avatar.AvatarSelection;
@@ -118,7 +120,7 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity
protected void onCreate(Bundle state, boolean ready) {
setContentView(R.layout.group_create_activity);
//noinspection ConstantConditions
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ initializeAppBar();
initializeResources();
initializeExistingGroup();
}
@@ -177,6 +179,12 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity
addSelectedContacts(recipients.toArray(new Recipient[recipients.size()]));
}
+ private void initializeAppBar() {
+ Drawable upIcon = ContextCompat.getDrawable(this, R.drawable.ic_arrow_left_24);
+ getSupportActionBar().setHomeAsUpIndicator(upIcon);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ }
+
private void initializeResources() {
RecipientsEditor recipientsEditor = ViewUtil.findById(this, R.id.recipients_text);
PushRecipientsPanel recipientsPanel = ViewUtil.findById(this, R.id.recipients);
@@ -190,7 +198,7 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity
recipientsEditor.setHint(R.string.recipients_panel__add_members);
recipientsPanel.setPanelChangeListener(this);
findViewById(R.id.contacts_button).setOnClickListener(new AddRecipientButtonListener());
- avatar.setImageDrawable(new ResourceContactPhoto(R.drawable.ic_group_white_24dp).asDrawable(this, ContactColors.UNKNOWN_COLOR.toConversationColor(this)));
+ avatar.setImageDrawable(new ResourceContactPhoto(R.drawable.ic_group_outline_40, R.drawable.ic_group_outline_20).asDrawable(this, ContactColors.UNKNOWN_COLOR.toConversationColor(this)));
avatar.setOnClickListener(view -> AvatarSelection.startAvatarSelection(this, false, false));
}
diff --git a/src/org/thoughtcrime/securesms/InviteActivity.java b/src/org/thoughtcrime/securesms/InviteActivity.java
index bea92bfd9f..d20087e623 100644
--- a/src/org/thoughtcrime/securesms/InviteActivity.java
+++ b/src/org/thoughtcrime/securesms/InviteActivity.java
@@ -5,11 +5,15 @@ import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.Intent;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import androidx.annotation.AnimRes;
+import androidx.appcompat.widget.Toolbar;
+import androidx.core.content.ContextCompat;
import androidx.interpolator.view.animation.FastOutSlowInInterpolator;
import androidx.appcompat.app.AlertDialog;
import android.view.View;
@@ -54,12 +58,21 @@ public class InviteActivity extends PassphraseRequiredActionBarActivity implemen
getIntent().putExtra(ContactSelectionListFragment.REFRESHABLE, false);
setContentView(R.layout.invite_activity);
- assert getSupportActionBar() != null;
- getSupportActionBar().setTitle(R.string.AndroidManifest__invite_friends);
+ initializeAppBar();
initializeResources();
}
+ private void initializeAppBar() {
+ Toolbar toolbar = findViewById(R.id.toolbar);
+ setSupportActionBar(toolbar);
+
+ assert getSupportActionBar() != null;
+
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ getSupportActionBar().setTitle(R.string.AndroidManifest__invite_friends);
+ }
+
private void initializeResources() {
slideInAnimation = loadAnimation(R.anim.slide_from_bottom);
slideOutAnimation = loadAnimation(R.anim.slide_to_bottom);
@@ -87,7 +100,7 @@ public class InviteActivity extends PassphraseRequiredActionBarActivity implemen
smsCancelButton.setOnClickListener(new SmsCancelClickListener());
smsSendButton.setOnClickListener(new SmsSendClickListener());
contactFilter.setOnFilterChangedListener(new ContactFilterChangedListener());
- contactFilter.setNavigationIcon(R.drawable.ic_search_white_24dp);
+ contactFilter.setNavigationIcon(R.drawable.ic_search_24);
}
private Animation loadAnimation(@AnimRes int animResId) {
diff --git a/src/org/thoughtcrime/securesms/MessageDetailsActivity.java b/src/org/thoughtcrime/securesms/MessageDetailsActivity.java
index a89cdd2289..1f52554190 100644
--- a/src/org/thoughtcrime/securesms/MessageDetailsActivity.java
+++ b/src/org/thoughtcrime/securesms/MessageDetailsActivity.java
@@ -56,6 +56,7 @@ import org.thoughtcrime.securesms.recipients.LiveRecipient;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.sms.MessageSender;
import org.thoughtcrime.securesms.util.DateUtils;
+import org.thoughtcrime.securesms.util.DynamicDarkActionBarTheme;
import org.thoughtcrime.securesms.util.DynamicLanguage;
import org.thoughtcrime.securesms.util.DynamicTheme;
import org.thoughtcrime.securesms.util.ExpirationUtil;
@@ -100,7 +101,7 @@ public class MessageDetailsActivity extends PassphraseRequiredActionBarActivity
private ListView recipientsList;
private LayoutInflater inflater;
- private DynamicTheme dynamicTheme = new DynamicTheme();
+ private DynamicTheme dynamicTheme = new DynamicDarkActionBarTheme();
private DynamicLanguage dynamicLanguage = new DynamicLanguage();
private boolean running;
diff --git a/src/org/thoughtcrime/securesms/PushContactSelectionActivity.java b/src/org/thoughtcrime/securesms/PushContactSelectionActivity.java
index 056e94906b..699e9e55e8 100644
--- a/src/org/thoughtcrime/securesms/PushContactSelectionActivity.java
+++ b/src/org/thoughtcrime/securesms/PushContactSelectionActivity.java
@@ -38,7 +38,7 @@ public class PushContactSelectionActivity extends ContactSelectionActivity {
getIntent().putExtra(ContactSelectionListFragment.MULTI_SELECT, true);
super.onCreate(icicle, ready);
- getToolbar().setNavigationIcon(R.drawable.ic_check_white_24dp);
+ getToolbar().setNavigationIcon(R.drawable.ic_check_24);
getToolbar().setNavigationOnClickListener(v -> {
Intent resultIntent = getIntent();
List selectedContacts = contactsFragment.getSelectedContacts();
diff --git a/src/org/thoughtcrime/securesms/RecipientPreferenceActivity.java b/src/org/thoughtcrime/securesms/RecipientPreferenceActivity.java
index 89f28664ae..cb0e4d423e 100644
--- a/src/org/thoughtcrime/securesms/RecipientPreferenceActivity.java
+++ b/src/org/thoughtcrime/securesms/RecipientPreferenceActivity.java
@@ -16,6 +16,8 @@ import android.provider.Settings;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.android.material.appbar.CollapsingToolbarLayout;
+
+import androidx.core.graphics.drawable.DrawableCompat;
import androidx.fragment.app.Fragment;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.Loader;
@@ -73,12 +75,13 @@ import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.sms.MessageSender;
import org.thoughtcrime.securesms.util.CommunicationActions;
import org.thoughtcrime.securesms.util.Dialogs;
+import org.thoughtcrime.securesms.util.DynamicDarkToolbarTheme;
import org.thoughtcrime.securesms.util.DynamicLanguage;
-import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
import org.thoughtcrime.securesms.util.DynamicTheme;
import org.thoughtcrime.securesms.util.GroupUtil;
import org.thoughtcrime.securesms.util.IdentityUtil;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
+import org.thoughtcrime.securesms.util.ThemeUtil;
import org.thoughtcrime.securesms.util.ViewUtil;
import org.thoughtcrime.securesms.util.concurrent.ListenableFuture;
import org.whispersystems.libsignal.util.guava.Optional;
@@ -104,7 +107,7 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
private static final String PREFERENCE_ABOUT = "pref_key_number";
private static final String PREFERENCE_CUSTOM_NOTIFICATIONS = "pref_key_recipient_custom_notifications";
- private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme();
+ private final DynamicTheme dynamicTheme = new DynamicDarkToolbarTheme();
private final DynamicLanguage dynamicLanguage = new DynamicLanguage();
private ImageView avatar;
@@ -173,8 +176,8 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
this.threadPhotoRailView = ViewUtil.findById(this, R.id.recent_photos);
this.threadPhotoRailLabel = ViewUtil.findById(this, R.id.rail_label);
- this.toolbarLayout.setExpandedTitleColor(getResources().getColor(R.color.white));
- this.toolbarLayout.setCollapsedTitleTextColor(getResources().getColor(R.color.white));
+ this.toolbarLayout.setExpandedTitleColor(ThemeUtil.getThemedColor(this, R.attr.conversation_title_color));
+ this.toolbarLayout.setCollapsedTitleTextColor(ThemeUtil.getThemedColor(this, R.attr.conversation_title_color));
this.threadPhotoRailView.setListener(mediaRecord -> {
Intent intent = new Intent(RecipientPreferenceActivity.this, MediaPreviewActivity.class);
@@ -195,6 +198,7 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
});
Toolbar toolbar = ViewUtil.findById(this, R.id.toolbar);
+ DrawableCompat.setTint(toolbar.getNavigationIcon(), ThemeUtil.getThemedColor(this, R.attr.conversation_subtitle_color));
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setLogo(null);
@@ -208,7 +212,7 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
private void setHeader(@NonNull Recipient recipient) {
ContactPhoto contactPhoto = recipient.isLocalNumber() ? new ProfileContactPhoto(recipient.getId(), String.valueOf(TextSecurePreferences.getProfileAvatarId(this)))
: recipient.getContactPhoto();
- FallbackContactPhoto fallbackPhoto = recipient.isLocalNumber() ? new ResourceContactPhoto(R.drawable.ic_profile_default, R.drawable.ic_person_large)
+ FallbackContactPhoto fallbackPhoto = recipient.isLocalNumber() ? new ResourceContactPhoto(R.drawable.ic_profile_outline_40, R.drawable.ic_profile_outline_20, R.drawable.ic_person_large)
: recipient.getFallbackContactPhoto();
glideRequests.load(contactPhoto)
diff --git a/src/org/thoughtcrime/securesms/TransportOptions.java b/src/org/thoughtcrime/securesms/TransportOptions.java
index ab7c2166b3..d4ed37c42a 100644
--- a/src/org/thoughtcrime/securesms/TransportOptions.java
+++ b/src/org/thoughtcrime/securesms/TransportOptions.java
@@ -108,7 +108,7 @@ public class TransportOptions {
public static @NonNull TransportOption getPushTransportOption(@NonNull Context context) {
return new TransportOption(Type.TEXTSECURE,
- R.drawable.ic_send_push_white_24dp,
+ R.drawable.ic_send_lock_24,
context.getResources().getColor(R.color.textsecure_primary),
context.getString(R.string.ConversationActivity_transport_signal),
context.getString(R.string.conversation_activity__type_message_push),
@@ -187,13 +187,13 @@ public class TransportOptions {
}
if (subscriptions.size() < 2) {
- results.add(new TransportOption(Type.SMS, R.drawable.ic_send_sms_white_24dp,
- context.getResources().getColor(R.color.grey_600),
+ results.add(new TransportOption(Type.SMS, R.drawable.ic_send_unlock_24,
+ context.getResources().getColor(R.color.core_grey_50),
text, composeHint, characterCalculator));
} else {
for (SubscriptionInfoCompat subscriptionInfo : subscriptions) {
- results.add(new TransportOption(Type.SMS, R.drawable.ic_send_sms_white_24dp,
- context.getResources().getColor(R.color.grey_600),
+ results.add(new TransportOption(Type.SMS, R.drawable.ic_send_unlock_24,
+ context.getResources().getColor(R.color.core_grey_50),
text, composeHint, characterCalculator,
Optional.of(subscriptionInfo.getDisplayName()),
Optional.of(subscriptionInfo.getSubscriptionId())));
diff --git a/src/org/thoughtcrime/securesms/WebRtcCallActivity.java b/src/org/thoughtcrime/securesms/WebRtcCallActivity.java
index 6b437a0100..385153ffe2 100644
--- a/src/org/thoughtcrime/securesms/WebRtcCallActivity.java
+++ b/src/org/thoughtcrime/securesms/WebRtcCallActivity.java
@@ -24,9 +24,12 @@ import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.res.Configuration;
import android.media.AudioManager;
+import android.os.Build;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
+import androidx.core.app.ActivityCompat;
+
import org.thoughtcrime.securesms.logging.Log;
import android.view.View;
import android.view.Window;
@@ -170,7 +173,7 @@ public class WebRtcCallActivity extends Activity {
.request(Manifest.permission.RECORD_AUDIO, Manifest.permission.CAMERA)
.ifNecessary()
.withRationaleDialog(getString(R.string.WebRtcCallActivity_to_answer_the_call_from_s_give_signal_access_to_your_microphone, event.getRecipient().toShortString()),
- R.drawable.ic_mic_white_48dp, R.drawable.ic_videocam_white_48dp)
+ R.drawable.ic_mic_solid_24, R.drawable.ic_videocam_white_48dp)
.withPermanentDenialDialog(getString(R.string.WebRtcCallActivity_signal_requires_microphone_and_camera_permissions_in_order_to_make_or_receive_calls))
.onAllGranted(() -> {
callScreen.setActiveCall(event.getRecipient(), getString(R.string.RedPhone_answering));
diff --git a/src/org/thoughtcrime/securesms/color/MaterialColor.java b/src/org/thoughtcrime/securesms/color/MaterialColor.java
index 20b87d29ab..bcd8d00de2 100644
--- a/src/org/thoughtcrime/securesms/color/MaterialColor.java
+++ b/src/org/thoughtcrime/securesms/color/MaterialColor.java
@@ -78,7 +78,7 @@ public enum MaterialColor {
}
public @ColorInt int toStatusBarColor(@NonNull Context context) {
- return context.getResources().getColor(shadeColor);
+ return context.getResources().getColor(mainColor);
}
public @ColorRes int toQuoteBarColorResource(@NonNull Context context, boolean outgoing) {
@@ -94,8 +94,8 @@ public enum MaterialColor {
int alpha = isDarkTheme(context) ? (int) (0.2 * 255) : (int) (0.4 * 255);
return Color.argb(alpha, Color.red(color), Color.green(color), Color.blue(color));
}
- return context.getResources().getColor(isDarkTheme(context) ? R.color.transparent_black_70
- : R.color.transparent_white_aa);
+ return context.getResources().getColor(isDarkTheme(context) ? R.color.transparent_black_40
+ : R.color.transparent_white_60);
}
public @ColorInt int toQuoteFooterColor(@NonNull Context context, boolean outgoing) {
@@ -104,8 +104,8 @@ public enum MaterialColor {
int alpha = isDarkTheme(context) ? (int) (0.4 * 255) : (int) (0.6 * 255);
return Color.argb(alpha, Color.red(color), Color.green(color), Color.blue(color));
}
- return context.getResources().getColor(isDarkTheme(context) ? R.color.transparent_black_90
- : R.color.transparent_white_bb);
+ return context.getResources().getColor(isDarkTheme(context) ? R.color.transparent_black_60
+ : R.color.transparent_white_80);
}
public boolean represents(Context context, int colorValue) {
diff --git a/src/org/thoughtcrime/securesms/components/AvatarImageView.java b/src/org/thoughtcrime/securesms/components/AvatarImageView.java
index 92b6e85650..7fc0a84898 100644
--- a/src/org/thoughtcrime/securesms/components/AvatarImageView.java
+++ b/src/org/thoughtcrime/securesms/components/AvatarImageView.java
@@ -28,6 +28,9 @@ import java.util.Objects;
public final class AvatarImageView extends AppCompatImageView {
+ private static final int SIZE_LARGE = 1;
+ private static final int SIZE_SMALL = 2;
+
@SuppressWarnings("unused")
private static final String TAG = AvatarImageView.class.getSimpleName();
@@ -46,6 +49,7 @@ public final class AvatarImageView extends AppCompatImageView {
DARK_THEME_OUTLINE_PAINT.setAntiAlias(true);
}
+ private int size;
private boolean inverted;
private Paint outlinePaint;
private OnClickListener listener;
@@ -68,23 +72,27 @@ public final class AvatarImageView extends AppCompatImageView {
if (attrs != null) {
TypedArray typedArray = context.getTheme().obtainStyledAttributes(attrs, R.styleable.AvatarImageView, 0, 0);
- inverted = typedArray.getBoolean(0, false);
+ inverted = typedArray.getBoolean(R.styleable.AvatarImageView_inverted, false);
+ size = typedArray.getInt(R.styleable.AvatarImageView_fallbackImageSize, SIZE_LARGE);
typedArray.recycle();
}
outlinePaint = ThemeUtil.isDarkTheme(getContext()) ? DARK_THEME_OUTLINE_PAINT : LIGHT_THEME_OUTLINE_PAINT;
- unknownRecipientDrawable = new ResourceContactPhoto(R.drawable.ic_profile_default).asDrawable(getContext(), ContactColors.UNKNOWN_COLOR.toConversationColor(getContext()), inverted);
+ unknownRecipientDrawable = new ResourceContactPhoto(R.drawable.ic_profile_outline_40, R.drawable.ic_profile_outline_20).asDrawable(getContext(), ContactColors.UNKNOWN_COLOR.toConversationColor(getContext()), inverted);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
- float cx = getWidth() / 2f;
- float cy = getHeight() / 2f;
- float radius = cx - (outlinePaint.getStrokeWidth() / 2f);
+ float width = getWidth() - getPaddingRight() - getPaddingLeft();
+ float height = getHeight() - getPaddingBottom() - getPaddingTop();
+ float cx = width / 2f;
+ float cy = height / 2f;
+ float radius = Math.min(cx, cy) - (outlinePaint.getStrokeWidth() / 2f);
+ canvas.translate(getPaddingLeft(), getPaddingTop());
canvas.drawCircle(cx, cy, radius, outlinePaint);
}
@@ -102,7 +110,9 @@ public final class AvatarImageView extends AppCompatImageView {
requestManager.clear(this);
recipientContactPhoto = photo;
- Drawable fallbackContactPhotoDrawable = photo.recipient.getFallbackContactPhotoDrawable(getContext(), inverted);
+ Drawable fallbackContactPhotoDrawable = size == SIZE_SMALL
+ ? photo.recipient.getSmallFallbackContactPhotoDrawable(getContext(), inverted)
+ : photo.recipient.getFallbackContactPhotoDrawable(getContext(), inverted);
if (photo.contactPhoto != null) {
requestManager.load(photo.contactPhoto)
diff --git a/src/org/thoughtcrime/securesms/components/ContactFilterToolbar.java b/src/org/thoughtcrime/securesms/components/ContactFilterToolbar.java
index c310323c2a..91336d6ad7 100644
--- a/src/org/thoughtcrime/securesms/components/ContactFilterToolbar.java
+++ b/src/org/thoughtcrime/securesms/components/ContactFilterToolbar.java
@@ -1,8 +1,13 @@
package org.thoughtcrime.securesms.components;
import android.content.Context;
+import android.content.res.TypedArray;
import android.graphics.Rect;
+
+import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
+import androidx.core.widget.TextViewCompat;
+
import android.text.Editable;
import android.text.InputType;
import android.text.TextWatcher;
@@ -97,9 +102,27 @@ public class ContactFilterToolbar extends Toolbar {
setLogo(null);
setContentInsetStartWithNavigation(0);
expandTapArea(toggleContainer, dialpadToggle);
+ styleSearchText(searchText, context, attrs, defStyleAttr);
searchText.requestFocus();
}
+ private void styleSearchText(@NonNull EditText searchText,
+ @NonNull Context context,
+ @NonNull AttributeSet attrs,
+ int defStyle)
+ {
+ final TypedArray attributes = context.obtainStyledAttributes(attrs,
+ R.styleable.ContactFilterToolbar,
+ defStyle,
+ 0);
+
+ int styleResource = attributes.getResourceId(R.styleable.ContactFilterToolbar_searchTextStyle, -1);
+ if (styleResource != -1) {
+ TextViewCompat.setTextAppearance(searchText, styleResource);
+ }
+ attributes.recycle();
+ }
+
public void clear() {
searchText.setText("");
notifyListener();
diff --git a/src/org/thoughtcrime/securesms/components/DarkSearchView.java b/src/org/thoughtcrime/securesms/components/DarkSearchView.java
new file mode 100644
index 0000000000..71c017e506
--- /dev/null
+++ b/src/org/thoughtcrime/securesms/components/DarkSearchView.java
@@ -0,0 +1,35 @@
+package org.thoughtcrime.securesms.components;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.util.AttributeSet;
+import android.widget.EditText;
+
+import androidx.annotation.AttrRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
+
+import org.thoughtcrime.securesms.R;
+import org.thoughtcrime.securesms.util.ThemeUtil;
+
+/**
+ * Custom styled search view that we can insert into ActionBar menus
+ */
+public class DarkSearchView extends androidx.appcompat.widget.SearchView {
+ public DarkSearchView(@NonNull Context context) {
+ this(context, null);
+ }
+
+ public DarkSearchView(@NonNull Context context, @Nullable AttributeSet attrs) {
+ this(context, attrs, R.attr.search_view_style_dark);
+ }
+
+ public DarkSearchView(@NonNull Context context, @Nullable AttributeSet attrs, @AttrRes int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+
+ EditText searchText = findViewById(androidx.appcompat.R.id.search_src_text);
+ searchText.setTextColor(ContextCompat.getColor(context, R.color.transparent_white_90));
+ }
+}
diff --git a/src/org/thoughtcrime/securesms/components/ExpirationTimerView.java b/src/org/thoughtcrime/securesms/components/ExpirationTimerView.java
index 1de60b8233..33a0004339 100644
--- a/src/org/thoughtcrime/securesms/components/ExpirationTimerView.java
+++ b/src/org/thoughtcrime/securesms/components/ExpirationTimerView.java
@@ -19,19 +19,19 @@ public class ExpirationTimerView extends androidx.appcompat.widget.AppCompatImag
private boolean visible = false;
private boolean stopped = true;
- private final int[] frames = new int[]{ R.drawable.timer00,
- R.drawable.timer05,
- R.drawable.timer10,
- R.drawable.timer15,
- R.drawable.timer20,
- R.drawable.timer25,
- R.drawable.timer30,
- R.drawable.timer35,
- R.drawable.timer40,
- R.drawable.timer45,
- R.drawable.timer50,
- R.drawable.timer55,
- R.drawable.timer60 };
+ private final int[] frames = new int[]{ R.drawable.ic_timer_00_16,
+ R.drawable.ic_timer_05_16,
+ R.drawable.ic_timer_10_16,
+ R.drawable.ic_timer_15_16,
+ R.drawable.ic_timer_20_16,
+ R.drawable.ic_timer_25_16,
+ R.drawable.ic_timer_30_16,
+ R.drawable.ic_timer_35_16,
+ R.drawable.ic_timer_40_16,
+ R.drawable.ic_timer_45_16,
+ R.drawable.ic_timer_50_16,
+ R.drawable.ic_timer_55_16,
+ R.drawable.ic_timer_60_16 };
public ExpirationTimerView(Context context) {
super(context);
diff --git a/src/org/thoughtcrime/securesms/components/SearchToolbar.java b/src/org/thoughtcrime/securesms/components/SearchToolbar.java
index 1ac87e56b9..4dd64f0df6 100644
--- a/src/org/thoughtcrime/securesms/components/SearchToolbar.java
+++ b/src/org/thoughtcrime/securesms/components/SearchToolbar.java
@@ -3,13 +3,14 @@ package org.thoughtcrime.securesms.components;
import android.animation.Animator;
import android.content.Context;
-import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.os.Build;
import androidx.annotation.MainThread;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.SearchView;
import androidx.appcompat.widget.Toolbar;
+import androidx.core.content.ContextCompat;
+
import android.util.AttributeSet;
import android.view.MenuItem;
import android.view.View;
@@ -47,11 +48,9 @@ public class SearchToolbar extends LinearLayout {
Toolbar toolbar = findViewById(R.id.toolbar);
- Drawable drawable = getContext().getResources().getDrawable(R.drawable.ic_arrow_back_white_24dp);
- drawable.mutate();
- drawable.setColorFilter(getContext().getResources().getColor(R.color.grey_700), PorterDuff.Mode.SRC_IN);
-
+ Drawable drawable = ContextCompat.getDrawable(getContext(), R.drawable.ic_arrow_left_24);
toolbar.setNavigationIcon(drawable);
+ toolbar.setCollapseIcon(drawable);
toolbar.inflateMenu(R.menu.conversation_list_search);
this.searchItem = toolbar.getMenu().findItem(R.id.action_filter_search);
diff --git a/src/org/thoughtcrime/securesms/components/SearchView.java b/src/org/thoughtcrime/securesms/components/SearchView.java
new file mode 100644
index 0000000000..dc8d3779f5
--- /dev/null
+++ b/src/org/thoughtcrime/securesms/components/SearchView.java
@@ -0,0 +1,27 @@
+package org.thoughtcrime.securesms.components;
+
+import android.content.Context;
+import android.util.AttributeSet;
+
+import androidx.annotation.AttrRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import org.thoughtcrime.securesms.R;
+
+/**
+ * Custom styled search view that we can insert into ActionBar menus
+ */
+public class SearchView extends androidx.appcompat.widget.SearchView {
+ public SearchView(@NonNull Context context) {
+ this(context, null);
+ }
+
+ public SearchView(@NonNull Context context, @Nullable AttributeSet attrs) {
+ this(context, attrs, R.attr.search_view_style);
+ }
+
+ public SearchView(@NonNull Context context, @Nullable AttributeSet attrs, @AttrRes int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+}
diff --git a/src/org/thoughtcrime/securesms/contacts/avatars/FallbackContactPhoto.java b/src/org/thoughtcrime/securesms/contacts/avatars/FallbackContactPhoto.java
index 8d8bf0ed89..9a4e265c6f 100644
--- a/src/org/thoughtcrime/securesms/contacts/avatars/FallbackContactPhoto.java
+++ b/src/org/thoughtcrime/securesms/contacts/avatars/FallbackContactPhoto.java
@@ -7,6 +7,7 @@ public interface FallbackContactPhoto {
public Drawable asDrawable(Context context, int color);
public Drawable asDrawable(Context context, int color, boolean inverted);
+ public Drawable asSmallDrawable(Context context, int color, boolean inverted);
public Drawable asCallCard(Context context);
}
diff --git a/src/org/thoughtcrime/securesms/contacts/avatars/GeneratedContactPhoto.java b/src/org/thoughtcrime/securesms/contacts/avatars/GeneratedContactPhoto.java
index 0812cd9d15..86cc7ab5ac 100644
--- a/src/org/thoughtcrime/securesms/contacts/avatars/GeneratedContactPhoto.java
+++ b/src/org/thoughtcrime/securesms/contacts/avatars/GeneratedContactPhoto.java
@@ -61,6 +61,11 @@ public class GeneratedContactPhoto implements FallbackContactPhoto {
return new ResourceContactPhoto(fallbackResId).asDrawable(context, color, inverted);
}
+ @Override
+ public Drawable asSmallDrawable(Context context, int color, boolean inverted) {
+ return asDrawable(context, color, inverted);
+ }
+
private @Nullable String getAbbreviation(String name) {
String[] parts = name.split(" ");
StringBuilder builder = new StringBuilder();
diff --git a/src/org/thoughtcrime/securesms/contacts/avatars/ResourceContactPhoto.java b/src/org/thoughtcrime/securesms/contacts/avatars/ResourceContactPhoto.java
index 6c23bd471d..09b97a8889 100644
--- a/src/org/thoughtcrime/securesms/contacts/avatars/ResourceContactPhoto.java
+++ b/src/org/thoughtcrime/securesms/contacts/avatars/ResourceContactPhoto.java
@@ -7,6 +7,9 @@ import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import androidx.annotation.DrawableRes;
import androidx.appcompat.content.res.AppCompatResources;
+import androidx.core.content.ContextCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
+
import android.widget.ImageView;
import com.amulyakhare.textdrawable.TextDrawable;
@@ -18,15 +21,21 @@ import org.thoughtcrime.securesms.util.ThemeUtil;
public class ResourceContactPhoto implements FallbackContactPhoto {
private final int resourceId;
+ private final int smallResourceId;
private final int callCardResourceId;
public ResourceContactPhoto(@DrawableRes int resourceId) {
- this(resourceId, resourceId);
+ this(resourceId, resourceId, resourceId);
}
- public ResourceContactPhoto(@DrawableRes int resourceId, @DrawableRes int callCardResourceId) {
+ public ResourceContactPhoto(@DrawableRes int resourceId, @DrawableRes int smallResourceId) {
+ this(resourceId, smallResourceId, resourceId);
+ }
+
+ public ResourceContactPhoto(@DrawableRes int resourceId, @DrawableRes int smallResourceId, @DrawableRes int callCardResourceId) {
this.resourceId = resourceId;
this.callCardResourceId = callCardResourceId;
+ this.smallResourceId = smallResourceId;
}
@Override
@@ -36,8 +45,17 @@ public class ResourceContactPhoto implements FallbackContactPhoto {
@Override
public Drawable asDrawable(Context context, int color, boolean inverted) {
+ return buildDrawable(context, resourceId, color, inverted);
+ }
+
+ @Override
+ public Drawable asSmallDrawable(Context context, int color, boolean inverted) {
+ return buildDrawable(context, smallResourceId, color, inverted);
+ }
+
+ private Drawable buildDrawable(Context context, int resourceId, int color, boolean inverted) {
Drawable background = TextDrawable.builder().buildRound(" ", inverted ? Color.WHITE : color);
- RoundedDrawable foreground = (RoundedDrawable) RoundedDrawable.fromDrawable(context.getResources().getDrawable(resourceId));
+ RoundedDrawable foreground = (RoundedDrawable) RoundedDrawable.fromDrawable(ContextCompat.getDrawable(context, resourceId));
foreground.setScaleType(ImageView.ScaleType.CENTER);
diff --git a/src/org/thoughtcrime/securesms/contacts/avatars/TransparentContactPhoto.java b/src/org/thoughtcrime/securesms/contacts/avatars/TransparentContactPhoto.java
index 318d3a131b..17f62f3a4d 100644
--- a/src/org/thoughtcrime/securesms/contacts/avatars/TransparentContactPhoto.java
+++ b/src/org/thoughtcrime/securesms/contacts/avatars/TransparentContactPhoto.java
@@ -22,6 +22,11 @@ public class TransparentContactPhoto implements FallbackContactPhoto {
return RoundedDrawable.fromDrawable(context.getResources().getDrawable(android.R.color.transparent));
}
+ @Override
+ public Drawable asSmallDrawable(Context context, int color, boolean inverted) {
+ return asDrawable(context, color, inverted);
+ }
+
@Override
public Drawable asCallCard(Context context) {
return ContextCompat.getDrawable(context, R.drawable.ic_contact_picture_large);
diff --git a/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java
index cb42ee2b12..aa2826b4de 100644
--- a/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java
+++ b/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java
@@ -30,8 +30,9 @@ import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
-import android.graphics.PorterDuff.Mode;
+import android.graphics.PorterDuff;
import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
import android.hardware.Camera;
import android.net.Uri;
import android.os.AsyncTask;
@@ -66,8 +67,10 @@ import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.SearchView;
import androidx.appcompat.widget.Toolbar;
+import androidx.core.content.ContextCompat;
import androidx.core.content.pm.ShortcutInfoCompat;
import androidx.core.content.pm.ShortcutManagerCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
import androidx.core.graphics.drawable.IconCompat;
import androidx.core.view.MenuItemCompat;
import androidx.lifecycle.ViewModelProviders;
@@ -204,8 +207,9 @@ import org.thoughtcrime.securesms.util.CharacterCalculator.CharacterState;
import org.thoughtcrime.securesms.util.CommunicationActions;
import org.thoughtcrime.securesms.util.Dialogs;
import org.thoughtcrime.securesms.util.DirectoryHelper;
+import org.thoughtcrime.securesms.util.DynamicDarkToolbarTheme;
import org.thoughtcrime.securesms.util.DynamicLanguage;
-import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
+import org.thoughtcrime.securesms.util.DynamicTheme;
import org.thoughtcrime.securesms.util.ExpirationUtil;
import org.thoughtcrime.securesms.util.GroupUtil;
import org.thoughtcrime.securesms.util.IdentityUtil;
@@ -213,6 +217,7 @@ import org.thoughtcrime.securesms.util.MediaUtil;
import org.thoughtcrime.securesms.util.ServiceUtil;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.TextSecurePreferences.MediaKeyboardMode;
+import org.thoughtcrime.securesms.util.ThemeUtil;
import org.thoughtcrime.securesms.util.Util;
import org.thoughtcrime.securesms.util.ViewUtil;
import org.thoughtcrime.securesms.util.concurrent.AssertedSuccessListener;
@@ -324,9 +329,9 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
private boolean isMmsEnabled = true;
private boolean isSecurityInitialized = false;
- private final IdentityRecordList identityRecords = new IdentityRecordList();
- private final DynamicNoActionBarTheme dynamicTheme = new DynamicNoActionBarTheme();
- private final DynamicLanguage dynamicLanguage = new DynamicLanguage();
+ private final IdentityRecordList identityRecords = new IdentityRecordList();
+ private final DynamicTheme dynamicTheme = new DynamicDarkToolbarTheme();
+ private final DynamicLanguage dynamicLanguage = new DynamicLanguage();
@Override
protected void onPreCreate() {
@@ -1556,8 +1561,10 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
calculateCharactersRemaining();
updateLinkPreviewState();
composeText.setTransport(newTransport);
- buttonToggle.getBackground().setColorFilter(newTransport.getBackgroundColor(), Mode.MULTIPLY);
+
+ buttonToggle.getBackground().setColorFilter(newTransport.getBackgroundColor(), PorterDuff.Mode.MULTIPLY);
buttonToggle.getBackground().invalidateSelf();
+
if (manuallySelected) recordTransportPreference(newTransport);
});
@@ -1592,6 +1599,11 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
ActionBar supportActionBar = getSupportActionBar();
if (supportActionBar == null) throw new AssertionError();
+ Drawable drawable = ContextCompat.getDrawable(this, R.drawable.ic_arrow_left_24);
+ DrawableCompat.setTint(drawable, ThemeUtil.getThemedColor(this, R.attr.icon_tint_dark));
+ toolbar.setCollapseIcon(drawable);
+
+ supportActionBar.setHomeAsUpIndicator(drawable);
supportActionBar.setDisplayHomeAsUpEnabled(true);
supportActionBar.setDisplayShowTitleEnabled(false);
}
@@ -1778,7 +1790,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
case AttachmentTypeSelector.TAKE_PHOTO:
attachmentManager.capturePhoto(this, TAKE_PHOTO); break;
case AttachmentTypeSelector.ADD_GIF:
- AttachmentManager.selectGif(this, PICK_GIF, !isSecureText); break;
+ AttachmentManager.selectGif(this, PICK_GIF, !isSecureText, recipient.get().getColor().toConversationColor(this)); break;
}
}
@@ -2353,7 +2365,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
Permissions.with(this)
.request(Manifest.permission.RECORD_AUDIO)
.ifNecessary()
- .withRationaleDialog(getString(R.string.ConversationActivity_to_send_audio_messages_allow_signal_access_to_your_microphone), R.drawable.ic_mic_white_48dp)
+ .withRationaleDialog(getString(R.string.ConversationActivity_to_send_audio_messages_allow_signal_access_to_your_microphone), R.drawable.ic_mic_solid_24)
.withPermanentDenialDialog(getString(R.string.ConversationActivity_signal_requires_the_microphone_permission_in_order_to_send_audio_messages))
.execute();
}
@@ -2554,7 +2566,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
Permissions.with(ConversationActivity.this)
.request(Manifest.permission.CAMERA)
.ifNecessary()
- .withRationaleDialog(getString(R.string.ConversationActivity_to_capture_photos_and_video_allow_signal_access_to_the_camera), R.drawable.ic_photo_camera_white_48dp)
+ .withRationaleDialog(getString(R.string.ConversationActivity_to_capture_photos_and_video_allow_signal_access_to_the_camera), R.drawable.ic_camera_solid_24)
.withPermanentDenialDialog(getString(R.string.ConversationActivity_signal_needs_the_camera_permission_to_take_photos_or_video))
.onAllGranted(() -> {
composeText.clearFocus();
diff --git a/src/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java b/src/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java
index 7c4898596b..d4a2f70056 100644
--- a/src/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java
+++ b/src/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java
@@ -2,11 +2,14 @@ package org.thoughtcrime.securesms.conversation;
import android.content.Context;
import android.content.Intent;
-import android.graphics.Color;
+import android.graphics.ColorFilter;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
+
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
+
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
@@ -29,6 +32,7 @@ import org.thoughtcrime.securesms.util.DateUtils;
import org.thoughtcrime.securesms.util.ExpirationUtil;
import org.thoughtcrime.securesms.util.GroupUtil;
import org.thoughtcrime.securesms.util.IdentityUtil;
+import org.thoughtcrime.securesms.util.ThemeUtil;
import org.thoughtcrime.securesms.util.concurrent.ListenableFuture;
import org.whispersystems.libsignal.util.guava.Optional;
@@ -149,13 +153,12 @@ public class ConversationUpdateItem extends LinearLayout
private void setTimerRecord(final MessageRecord messageRecord) {
if (messageRecord.getExpiresIn() > 0) {
- icon.setImageResource(R.drawable.ic_timer);
- icon.setColorFilter(new PorterDuffColorFilter(Color.parseColor("#757575"), PorterDuff.Mode.MULTIPLY));
+ icon.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.ic_timer_24));
} else {
- icon.setImageResource(R.drawable.ic_timer_disabled);
- icon.setColorFilter(new PorterDuffColorFilter(Color.parseColor("#757575"), PorterDuff.Mode.MULTIPLY));
+ icon.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.ic_timer_disabled_24));
}
+ icon.setColorFilter(getGreyFilter());
title.setText(ExpirationUtil.getExpirationDisplayValue(getContext(), (int)(messageRecord.getExpiresIn() / 1000)));
body.setText(messageRecord.getDisplayBody(getContext()));
@@ -164,9 +167,13 @@ public class ConversationUpdateItem extends LinearLayout
date.setVisibility(GONE);
}
+ private ColorFilter getGreyFilter() {
+ return new PorterDuffColorFilter(ContextCompat.getColor(getContext(), R.color.core_grey_50), PorterDuff.Mode.MULTIPLY);
+ }
+
private void setIdentityRecord(final MessageRecord messageRecord) {
- icon.setImageResource(R.drawable.ic_security_white_24dp);
- icon.setColorFilter(new PorterDuffColorFilter(Color.parseColor("#757575"), PorterDuff.Mode.MULTIPLY));
+ icon.setImageDrawable(ThemeUtil.getThemedDrawable(getContext(), R.attr.safety_number_icon));
+ icon.setColorFilter(getGreyFilter());
body.setText(messageRecord.getDisplayBody(getContext()));
title.setVisibility(GONE);
@@ -178,7 +185,7 @@ public class ConversationUpdateItem extends LinearLayout
if (messageRecord.isIdentityVerified()) icon.setImageResource(R.drawable.ic_check_white_24dp);
else icon.setImageResource(R.drawable.ic_info_outline_white_24dp);
- icon.setColorFilter(new PorterDuffColorFilter(Color.parseColor("#757575"), PorterDuff.Mode.MULTIPLY));
+ icon.setColorFilter(getGreyFilter());
body.setText(messageRecord.getDisplayBody(getContext()));
title.setVisibility(GONE);
@@ -187,7 +194,7 @@ public class ConversationUpdateItem extends LinearLayout
}
private void setGroupRecord(MessageRecord messageRecord) {
- icon.setImageResource(R.drawable.ic_group_grey600_24dp);
+ icon.setImageDrawable(ThemeUtil.getThemedDrawable(getContext(), R.attr.menu_group_icon));
icon.clearColorFilter();
body.setText(messageRecord.getDisplayBody(getContext()));
@@ -209,7 +216,7 @@ public class ConversationUpdateItem extends LinearLayout
private void setEndSessionRecord(MessageRecord messageRecord) {
icon.setImageResource(R.drawable.ic_refresh_white_24dp);
- icon.setColorFilter(new PorterDuffColorFilter(Color.parseColor("#757575"), PorterDuff.Mode.MULTIPLY));
+ icon.setColorFilter(getGreyFilter());
body.setText(messageRecord.getDisplayBody(getContext()));
title.setVisibility(GONE);
@@ -278,5 +285,4 @@ public class ConversationUpdateItem extends LinearLayout
});
}
}
-
}
diff --git a/src/org/thoughtcrime/securesms/giph/ui/GiphyActivity.java b/src/org/thoughtcrime/securesms/giph/ui/GiphyActivity.java
index 2611e46b81..681cf8cf32 100644
--- a/src/org/thoughtcrime/securesms/giph/ui/GiphyActivity.java
+++ b/src/org/thoughtcrime/securesms/giph/ui/GiphyActivity.java
@@ -6,21 +6,28 @@ import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
+import android.os.Build;
import android.os.Bundle;
+
+import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.android.material.tabs.TabLayout;
+
+import androidx.core.app.ActivityCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;
import org.thoughtcrime.securesms.logging.Log;
import android.view.View;
+import android.widget.LinearLayout;
import android.widget.Toast;
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.providers.BlobProvider;
+import org.thoughtcrime.securesms.util.DynamicDarkToolbarTheme;
import org.thoughtcrime.securesms.util.DynamicLanguage;
import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
import org.thoughtcrime.securesms.util.DynamicTheme;
@@ -41,8 +48,9 @@ public class GiphyActivity extends PassphraseRequiredActionBarActivity
public static final String EXTRA_IS_MMS = "extra_is_mms";
public static final String EXTRA_WIDTH = "extra_width";
public static final String EXTRA_HEIGHT = "extra_height";
+ public static final String EXTRA_COLOR = "extra_color";
- private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme();
+ private final DynamicTheme dynamicTheme = new DynamicDarkToolbarTheme();
private final DynamicLanguage dynamicLanguage = new DynamicLanguage();
private GiphyGifFragment gifFragment;
@@ -66,11 +74,16 @@ public class GiphyActivity extends PassphraseRequiredActionBarActivity
}
private void initializeToolbar() {
+
GiphyActivityToolbar toolbar = ViewUtil.findById(this, R.id.giphy_toolbar);
toolbar.setOnFilterChangedListener(this);
toolbar.setOnLayoutChangedListener(this);
toolbar.setPersistence(GiphyActivityToolbarTextSecurePreferencesPersistence.fromContext(this));
+ final int conversationColor = getConversationColor();
+ toolbar.setBackgroundColor(conversationColor);
+ setStatusBarColor(conversationColor);
+
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
@@ -91,6 +104,11 @@ public class GiphyActivity extends PassphraseRequiredActionBarActivity
viewPager.setAdapter(new GiphyFragmentPagerAdapter(this, getSupportFragmentManager(),
gifFragment, stickerFragment));
tabLayout.setupWithViewPager(viewPager);
+ tabLayout.setBackgroundColor(getConversationColor());
+ }
+
+ private @ColorInt int getConversationColor() {
+ return getIntent().getIntExtra(EXTRA_COLOR, ActivityCompat.getColor(this, R.color.signal_primary));
}
@Override
diff --git a/src/org/thoughtcrime/securesms/longmessage/LongMessageActivity.java b/src/org/thoughtcrime/securesms/longmessage/LongMessageActivity.java
index 48026aeeee..a0a59e7970 100644
--- a/src/org/thoughtcrime/securesms/longmessage/LongMessageActivity.java
+++ b/src/org/thoughtcrime/securesms/longmessage/LongMessageActivity.java
@@ -29,6 +29,7 @@ import org.thoughtcrime.securesms.linkpreview.LinkPreviewUtil;
import org.thoughtcrime.securesms.recipients.LiveRecipient;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientId;
+import org.thoughtcrime.securesms.util.DynamicDarkActionBarTheme;
import org.thoughtcrime.securesms.util.DynamicLanguage;
import org.thoughtcrime.securesms.util.DynamicTheme;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
@@ -45,7 +46,7 @@ public class LongMessageActivity extends PassphraseRequiredActionBarActivity {
private static final int MAX_DISPLAY_LENGTH = 64 * 1024;
private final DynamicLanguage dynamicLanguage = new DynamicLanguage();
- private final DynamicTheme dynamicTheme = new DynamicTheme();
+ private final DynamicTheme dynamicTheme = new DynamicDarkActionBarTheme();
private Stub sentBubble;
private Stub receivedBubble;
diff --git a/src/org/thoughtcrime/securesms/mediasend/MediaPickerFolderAdapter.java b/src/org/thoughtcrime/securesms/mediasend/MediaPickerFolderAdapter.java
index 059dc5ca63..837a5b470d 100644
--- a/src/org/thoughtcrime/securesms/mediasend/MediaPickerFolderAdapter.java
+++ b/src/org/thoughtcrime/securesms/mediasend/MediaPickerFolderAdapter.java
@@ -2,6 +2,8 @@ package org.thoughtcrime.securesms.mediasend;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
+
+import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -75,7 +77,7 @@ class MediaPickerFolderAdapter extends RecyclerView.Adapter {
Fragment fragment = getOrCreateCameraFragment();
diff --git a/src/org/thoughtcrime/securesms/mms/AttachmentManager.java b/src/org/thoughtcrime/securesms/mms/AttachmentManager.java
index 53bd324999..abf1dfd5b9 100644
--- a/src/org/thoughtcrime/securesms/mms/AttachmentManager.java
+++ b/src/org/thoughtcrime/securesms/mms/AttachmentManager.java
@@ -35,6 +35,7 @@ import android.util.Pair;
import android.view.View;
import android.widget.Toast;
+import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -42,6 +43,7 @@ import org.thoughtcrime.securesms.MediaPreviewActivity;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.TransportOption;
import org.thoughtcrime.securesms.attachments.Attachment;
+import org.thoughtcrime.securesms.color.MaterialColor;
import org.thoughtcrime.securesms.components.AudioView;
import org.thoughtcrime.securesms.components.DocumentView;
import org.thoughtcrime.securesms.components.RemovableEditableMediaView;
@@ -415,9 +417,10 @@ public class AttachmentManager {
.execute();
}
- public static void selectGif(Activity activity, int requestCode, boolean isForMms) {
+ public static void selectGif(Activity activity, int requestCode, boolean isForMms, @ColorInt int color) {
Intent intent = new Intent(activity, GiphyActivity.class);
intent.putExtra(GiphyActivity.EXTRA_IS_MMS, isForMms);
+ intent.putExtra(GiphyActivity.EXTRA_COLOR, color);
activity.startActivityForResult(intent, requestCode);
}
diff --git a/src/org/thoughtcrime/securesms/notifications/SingleRecipientNotificationBuilder.java b/src/org/thoughtcrime/securesms/notifications/SingleRecipientNotificationBuilder.java
index 52724badf8..56f47c200f 100644
--- a/src/org/thoughtcrime/securesms/notifications/SingleRecipientNotificationBuilder.java
+++ b/src/org/thoughtcrime/securesms/notifications/SingleRecipientNotificationBuilder.java
@@ -93,7 +93,7 @@ public class SingleRecipientNotificationBuilder extends AbstractNotificationBuil
} else {
setContentTitle(context.getString(R.string.SingleRecipientNotificationBuilder_signal));
- setLargeIcon(new GeneratedContactPhoto("Unknown", R.drawable.ic_profile_default).asDrawable(context, ContactColors.UNKNOWN_COLOR.toConversationColor(context)));
+ setLargeIcon(new GeneratedContactPhoto("Unknown", R.drawable.ic_profile_outline_40).asDrawable(context, ContactColors.UNKNOWN_COLOR.toConversationColor(context)));
}
}
diff --git a/src/org/thoughtcrime/securesms/permissions/RationaleDialog.java b/src/org/thoughtcrime/securesms/permissions/RationaleDialog.java
index a29d380f46..271d2f2d90 100644
--- a/src/org/thoughtcrime/securesms/permissions/RationaleDialog.java
+++ b/src/org/thoughtcrime/securesms/permissions/RationaleDialog.java
@@ -6,6 +6,10 @@ import android.content.Context;
import android.graphics.Color;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
+
+import android.graphics.drawable.Drawable;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
@@ -25,8 +29,10 @@ public class RationaleDialog {
TextView text = view.findViewById(R.id.message);
for (int i=0;i {
diff --git a/src/org/thoughtcrime/securesms/util/DynamicDarkActionBarTheme.java b/src/org/thoughtcrime/securesms/util/DynamicDarkActionBarTheme.java
new file mode 100644
index 0000000000..2bdcc8c84d
--- /dev/null
+++ b/src/org/thoughtcrime/securesms/util/DynamicDarkActionBarTheme.java
@@ -0,0 +1,18 @@
+package org.thoughtcrime.securesms.util;
+
+import android.app.Activity;
+
+import org.thoughtcrime.securesms.R;
+
+public class DynamicDarkActionBarTheme extends DynamicTheme {
+ @Override
+ protected int getSelectedTheme(Activity activity) {
+ String theme = TextSecurePreferences.getTheme(activity);
+
+ if (theme.equals("dark")) {
+ return R.style.TextSecure_DarkTheme_Conversation;
+ }
+
+ return R.style.TextSecure_LightTheme_Conversation;
+ }
+}
diff --git a/src/org/thoughtcrime/securesms/util/DynamicDarkToolbarTheme.java b/src/org/thoughtcrime/securesms/util/DynamicDarkToolbarTheme.java
new file mode 100644
index 0000000000..94990b69da
--- /dev/null
+++ b/src/org/thoughtcrime/securesms/util/DynamicDarkToolbarTheme.java
@@ -0,0 +1,18 @@
+package org.thoughtcrime.securesms.util;
+
+import android.app.Activity;
+
+import org.thoughtcrime.securesms.R;
+
+public class DynamicDarkToolbarTheme extends DynamicTheme {
+ @Override
+ protected int getSelectedTheme(Activity activity) {
+ String theme = TextSecurePreferences.getTheme(activity);
+
+ if (theme.equals("dark")) {
+ return R.style.TextSecure_DarkNoActionBar_DarkToolbar;
+ }
+
+ return R.style.TextSecure_LightNoActionBar_DarkToolbar;
+ }
+}
diff --git a/src/org/thoughtcrime/securesms/util/DynamicTheme.java b/src/org/thoughtcrime/securesms/util/DynamicTheme.java
index 9ee4e89db6..b89acd261e 100644
--- a/src/org/thoughtcrime/securesms/util/DynamicTheme.java
+++ b/src/org/thoughtcrime/securesms/util/DynamicTheme.java
@@ -2,6 +2,9 @@ package org.thoughtcrime.securesms.util;
import android.app.Activity;
import android.content.Intent;
+import android.content.res.Configuration;
+
+import androidx.appcompat.app.AppCompatDelegate;
import org.thoughtcrime.securesms.R;
@@ -30,7 +33,9 @@ public class DynamicTheme {
protected int getSelectedTheme(Activity activity) {
String theme = TextSecurePreferences.getTheme(activity);
- if (theme.equals(DARK)) return R.style.TextSecure_DarkTheme;
+ if (theme.equals(DARK)) {
+ return R.style.TextSecure_DarkTheme;
+ }
return R.style.TextSecure_LightTheme;
}
diff --git a/src/org/thoughtcrime/securesms/util/ThemeUtil.java b/src/org/thoughtcrime/securesms/util/ThemeUtil.java
index 0c61d9c43b..5b449df5ac 100644
--- a/src/org/thoughtcrime/securesms/util/ThemeUtil.java
+++ b/src/org/thoughtcrime/securesms/util/ThemeUtil.java
@@ -5,8 +5,12 @@ import android.content.res.Resources;
import android.graphics.Color;
import androidx.annotation.AttrRes;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.annotation.StyleRes;
import androidx.appcompat.view.ContextThemeWrapper;
+import androidx.core.content.ContextCompat;
+
+import android.graphics.drawable.Drawable;
import android.util.TypedValue;
import android.view.LayoutInflater;
@@ -28,6 +32,17 @@ public class ThemeUtil {
return Color.RED;
}
+ public static @Nullable Drawable getThemedDrawable(@NonNull Context context, @AttrRes int attr) {
+ TypedValue typedValue = new TypedValue();
+ Resources.Theme theme = context.getTheme();
+
+ if (theme.resolveAttribute(attr, typedValue, true)) {
+ return ContextCompat.getDrawable(context, typedValue.resourceId);
+ }
+
+ return null;
+ }
+
public static LayoutInflater getThemedInflater(@NonNull Context context, @NonNull LayoutInflater inflater, @StyleRes int theme) {
Context contextThemeWrapper = new ContextThemeWrapper(context, theme);
return inflater.cloneInContext(contextThemeWrapper);