signalapp / Signal-Android

A private messenger for Android.
https://signal.org
GNU Affero General Public License v3.0
25.53k stars 6.12k forks source link

Notification fails if a contacts starred state is toggled while DND with 'allow starred bypass' is enabled. Suggested workaround tested successfully. #12488

Open DavidUnboxed opened 2 years ago

DavidUnboxed commented 2 years ago

Bug description

Signal does not appear to recognize when a contact has been starred after do not disturb has been enabled in Android 13 on Pixel 6 Pro.

Steps to reproduce

  1. I reset my phone to factory defaults and went through the Android setup process.
  2. I added my Google account which had existing contacts, some bearing the star marker and some not.
  3. I installed the signal app and configured it to be the default messenger for SMS (appears unrelated to the issue but it's what I always do when I reset my phone).
  4. I enable do not disturb with the option to allow star marked contacts to bypass.
  5. I locked the phone screen and set the phone down.
  6. I had a starred contact send me a secured signal message. This initial message was received and successfully bypassed the do not disturb as expected.
  7. I removed the star from the contact and then lock the phone again, setting it down.
  8. The contact sent me another message, and the message was not received as it successfully was blocked by do not disturb. This was expected.
  9. I then went to the contact and put the star back in place on the contact, and subsequently locked the phone and put it down.
  10. When the contact then sent me additional messages, they also were blocked, instead of being bypassed. This was unexpected as the contact was starred. I waited about 5 minutes and had the contact try again, and again the message did not deliver a notification tone. In the signal app the messages sent by the contact were present but no notification sound was triggered.
  11. I disabled do not disturb mode, and then immediately re-enabled it. Subsequent attempts by the contact to send me messages while starred, succeeded as expected.

Suggested workaround: if do not disturb is unable, when modifying the starred state of contacts, disable and then re-enable do not disturb mode to ensure the setting is honored. This seems to be a workaround because I tested the same functionality with Telegram and the status of the stars was immediately picked up without having to toggle DND mode.

Actual result: When the state of a starred contact is toggled, while in do not disturb mode, notification is not delivered when expected. Other applications rapidly detect the changed star status and are able to successfully send or not send notifications depending on the setting. In this case, adding the star back to a contact seems to only be recognized by signal if DND is turned off and then reenabled.

Expected result: Changes to contact star status should be detected and not require disabling and re-enabling do not disturb mode.

Screenshots

None taken.

Device info

Device: Google Pixel 6 pro Android version: 13 build TP1A.220905.004 **Signal version: 5.50.4

Link to debug log

https://debuglogs.org/android/5.50.4/e93e08722b4d0a350144b82866bdc4e84c3ca7270acd5dbb851952171c6acba0

AcidRaZor commented 1 year ago

Do Not Disturb with Starred Contact also doesnt ring when receiving a call, even though messages come through fine. Have you experienced this too?

AmirGamilDev commented 1 year ago

Do Not Disturb with Starred Contact also doesnt ring when receiving a call, even though messages come through fine. Have you experienced this too?

Noticed this also and came here to report this as a bug. In fact, with me, no calls get through when DND is on even if calls filter is set to All. Google Meet works perfectly in this manner. WhatsApp doesn't work as well as Google Meet but behaves better in this regard.