From 47138d9157dad3c3576e1ad58d284112e359ab8d Mon Sep 17 00:00:00 2001 From: Juan Leyva Date: Thu, 15 Aug 2019 20:05:59 +0100 Subject: [PATCH] MDL-66244 message: Include group sender images in payload Android 9 notifications now displays two image icons in conversations. The group and the sender. --- message/classes/api.php | 10 +++++++--- message/tests/api_test.php | 7 +++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/message/classes/api.php b/message/classes/api.php index 851e38d4b12..30f0d87fd6b 100644 --- a/message/classes/api.php +++ b/message/classes/api.php @@ -1983,10 +1983,15 @@ class api { ], ]; + $userpicture = new \user_picture($eventdata->userfrom); + $userpicture->size = 1; // Use f1 size. + $userpicture = $userpicture->get_url($PAGE)->out(false); + $conv = $DB->get_record('message_conversations', ['id' => $conversationid]); if ($conv->type == self::MESSAGE_CONVERSATION_TYPE_GROUP) { $convextrafields = self::get_linked_conversation_extra_fields([$conv]); - // Conversation image. + // Conversation images. + $customdata['notificationsendericonurl'] = $userpicture; $imageurl = isset($convextrafields[$conv->id]) ? $convextrafields[$conv->id]['imageurl'] : null; if ($imageurl) { $customdata['notificationiconurl'] = $imageurl; @@ -1999,8 +2004,7 @@ class api { } $customdata['conversationname'] = format_string($conv->name, true, ['context' => $convcontext]); } else if ($conv->type == self::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL) { - $userpicture = new \user_picture($eventdata->userfrom); - $customdata['notificationiconurl'] = $userpicture->get_url($PAGE)->out(false); + $customdata['notificationiconurl'] = $userpicture; } $eventdata->customdata = $customdata; diff --git a/message/tests/api_test.php b/message/tests/api_test.php index dcc4e014a5b..63329f4418d 100644 --- a/message/tests/api_test.php +++ b/message/tests/api_test.php @@ -6298,7 +6298,7 @@ class core_message_api_testcase extends core_message_messagelib_testcase { * Test verifying that messages can be sent to existing linked group conversations. */ public function test_send_message_to_conversation_linked_group_conversation() { - global $CFG; + global $CFG, $PAGE; // Create some users. $user1 = self::getDataGenerator()->create_user(); @@ -6349,9 +6349,12 @@ class core_message_api_testcase extends core_message_messagelib_testcase { // Test customdata. $customdata = json_decode($messages[0]->customdata); $this->assertObjectHasAttribute('notificationiconurl', $customdata); + $this->assertObjectHasAttribute('notificationsendericonurl', $customdata); $this->assertEquals($groupimageurl, $customdata->notificationiconurl); $this->assertEquals($group->name, $customdata->conversationname); - + $userpicture = new \user_picture($user1); + $userpicture->size = 1; // Use f1 size. + $this->assertEquals($userpicture->get_url($PAGE)->out(false), $customdata->notificationsendericonurl); } /**