mirror of https://github.com/zulip/zulip.git
android notifications: Differentiate personal vs wildcard mentions.
The code to also notify for wildcard mentions was added in
0ed0bb6828
.
But that showed the same text for both the cases. This commit fixes
that.
This is more of change for correctness. The mobile app currently does
not rely on this text for notifications, but constructs the text by
itself from the data in the payload.
This also fixes the "stream_push_notify" case to consistently show
a `#` before the stream name.
This commit is contained in:
parent
ce6f6a3829
commit
4d24499317
|
@ -554,17 +554,18 @@ def get_gcm_alert(message: Message) -> str:
|
||||||
Determine what alert string to display based on the missed messages.
|
Determine what alert string to display based on the missed messages.
|
||||||
"""
|
"""
|
||||||
sender_str = message.sender.full_name
|
sender_str = message.sender.full_name
|
||||||
|
display_recipient = get_display_recipient(message.recipient)
|
||||||
if message.recipient.type == Recipient.HUDDLE and message.trigger == "private_message":
|
if message.recipient.type == Recipient.HUDDLE and message.trigger == "private_message":
|
||||||
return f"New private group message from {sender_str}"
|
return f"New private group message from {sender_str}"
|
||||||
elif message.recipient.type == Recipient.PERSONAL and message.trigger == "private_message":
|
elif message.recipient.type == Recipient.PERSONAL and message.trigger == "private_message":
|
||||||
return f"New private message from {sender_str}"
|
return f"New private message from {sender_str}"
|
||||||
elif message.is_stream_message() and (
|
elif message.is_stream_message() and message.trigger == "mentioned":
|
||||||
message.trigger == "mentioned" or message.trigger == "wildcard_mentioned"
|
return f"{sender_str} mentioned you in #{display_recipient}"
|
||||||
):
|
elif message.is_stream_message() and message.trigger == "wildcard_mentioned":
|
||||||
return f"New mention from {sender_str}"
|
return f"{sender_str} mentioned everyone in #{display_recipient}"
|
||||||
else:
|
else:
|
||||||
assert message.is_stream_message() and message.trigger == "stream_push_notify"
|
assert message.is_stream_message() and message.trigger == "stream_push_notify"
|
||||||
return f"New stream message from {sender_str} in {get_display_recipient(message.recipient)}"
|
return f"New stream message from {sender_str} in #{display_recipient}"
|
||||||
|
|
||||||
|
|
||||||
def get_mobile_push_content(rendered_content: str) -> str:
|
def get_mobile_push_content(rendered_content: str) -> str:
|
||||||
|
|
|
@ -1740,13 +1740,13 @@ class TestGetAPNsPayload(PushNotificationTest):
|
||||||
|
|
||||||
|
|
||||||
class TestGetGCMPayload(PushNotificationTest):
|
class TestGetGCMPayload(PushNotificationTest):
|
||||||
def test_get_message_payload_gcm(self) -> None:
|
def _test_get_message_payload_gcm_mentions(self, trigger: str, alert: str) -> None:
|
||||||
stream = Stream.objects.filter(name="Verona").get()
|
stream = Stream.objects.filter(name="Verona").get()
|
||||||
message = self.get_message(Recipient.STREAM, stream.id)
|
message = self.get_message(Recipient.STREAM, stream.id)
|
||||||
message.content = "a" * 210
|
message.content = "a" * 210
|
||||||
message.rendered_content = "a" * 210
|
message.rendered_content = "a" * 210
|
||||||
message.save()
|
message.save()
|
||||||
message.trigger = "mentioned"
|
message.trigger = trigger
|
||||||
|
|
||||||
hamlet = self.example_user("hamlet")
|
hamlet = self.example_user("hamlet")
|
||||||
payload, gcm_options = get_message_payload_gcm(hamlet, message)
|
payload, gcm_options = get_message_payload_gcm(hamlet, message)
|
||||||
|
@ -1755,7 +1755,7 @@ class TestGetGCMPayload(PushNotificationTest):
|
||||||
{
|
{
|
||||||
"user_id": hamlet.id,
|
"user_id": hamlet.id,
|
||||||
"event": "message",
|
"event": "message",
|
||||||
"alert": "New mention from King Hamlet",
|
"alert": alert,
|
||||||
"zulip_message_id": message.id,
|
"zulip_message_id": message.id,
|
||||||
"time": datetime_to_timestamp(message.date_sent),
|
"time": datetime_to_timestamp(message.date_sent),
|
||||||
"content": "a" * 200 + "…",
|
"content": "a" * 200 + "…",
|
||||||
|
@ -1779,7 +1779,17 @@ class TestGetGCMPayload(PushNotificationTest):
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_get_message_payload_gcm_personal(self) -> None:
|
def test_get_message_payload_gcm_personal_mention(self) -> None:
|
||||||
|
self._test_get_message_payload_gcm_mentions(
|
||||||
|
"mentioned", "King Hamlet mentioned you in #Verona"
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_get_message_payload_gcm_wildcard_mention(self) -> None:
|
||||||
|
self._test_get_message_payload_gcm_mentions(
|
||||||
|
"wildcard_mentioned", "King Hamlet mentioned everyone in #Verona"
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_get_message_payload_gcm_private_message(self) -> None:
|
||||||
message = self.get_message(Recipient.PERSONAL, 1)
|
message = self.get_message(Recipient.PERSONAL, 1)
|
||||||
message.trigger = "private_message"
|
message.trigger = "private_message"
|
||||||
hamlet = self.example_user("hamlet")
|
hamlet = self.example_user("hamlet")
|
||||||
|
@ -1823,7 +1833,7 @@ class TestGetGCMPayload(PushNotificationTest):
|
||||||
{
|
{
|
||||||
"user_id": hamlet.id,
|
"user_id": hamlet.id,
|
||||||
"event": "message",
|
"event": "message",
|
||||||
"alert": "New stream message from King Hamlet in Denmark",
|
"alert": "New stream message from King Hamlet in #Denmark",
|
||||||
"zulip_message_id": message.id,
|
"zulip_message_id": message.id,
|
||||||
"time": datetime_to_timestamp(message.date_sent),
|
"time": datetime_to_timestamp(message.date_sent),
|
||||||
"content": message.content,
|
"content": message.content,
|
||||||
|
@ -1860,7 +1870,7 @@ class TestGetGCMPayload(PushNotificationTest):
|
||||||
{
|
{
|
||||||
"user_id": hamlet.id,
|
"user_id": hamlet.id,
|
||||||
"event": "message",
|
"event": "message",
|
||||||
"alert": "New stream message from King Hamlet in Denmark",
|
"alert": "New stream message from King Hamlet in #Denmark",
|
||||||
"zulip_message_id": message.id,
|
"zulip_message_id": message.id,
|
||||||
"time": datetime_to_timestamp(message.date_sent),
|
"time": datetime_to_timestamp(message.date_sent),
|
||||||
"content": "*This organization has disabled including message content in mobile push notifications*",
|
"content": "*This organization has disabled including message content in mobile push notifications*",
|
||||||
|
|
Loading…
Reference in New Issue