element-hq / riot-android

A glossy Matrix collaboration client for Android
Apache License 2.0
1.4k stars 394 forks source link

Volume settings (silent/vibrate) not respected for inbound calls #2716

Open danry25 opened 5 years ago

danry25 commented 5 years ago

It appears Riot doesn't respect the system volume settings when receiving inbound calls, rather than using the ringtone volume setting like Linphone, Signal and the Android Dialer use, inbound calls in Riot Android have their volume defined by the "Music, games, video & other media" volume control.

In some situations a user may decrease the ringer volume or put their phone on silent or vibrate, but calls via Riot will happily ignore this setting and play a ringtone. This can be quite inappropriate (having your phone ring loudly at the wrong time) and doesn't match expected behavior.

bmarty commented 5 years ago

Hi @danry25 , I've done some test and it's working on my phone. The volume of the Riot Ringtone is well related to the system setting volume for incoming call. If the system setting volume is set to "vibrate only", incoming call in Riot does not ring but only vibrates. If the system setting in in 'do not disturb', Riot does not ring and does not vibrate as expected.

Maybe I haven't understood your issue? Do you reproduce the issue on your side?

Please let me know

danry25 commented 5 years ago

Hmm, I just tested this thrice, twice with the attached volume settings, and once with the last audio setting (Media, video, etc) turned down, the ringer blared through on the first two tries. Only the final attempt resulted in the phone vibrating rather than ringing.

What phone and version of Android did you test on? I'm on a T-Mobile beanded LG V30 H932 running Android 8.0

On another phone I borrowed it appears the ringtone setting is respected, but it is a Moto Z2 Force running Android 8.1, specifically some sort of LineageOS 15.1 rom (of questionable sourcing). I'll test on another stock H932 this weekend and see if its an issue on more than just my device.

danry25 commented 5 years ago

I tested this on a different V30 of the same Android version/stock ROM, and found this problem doesn't present itself in either the Google Play version or the F-Droid Version when cleanly installed. It appears this bug was introduced in 0.8.15 (F-e5478fd4) or prior on my device, and updating to 0.8.18 (F-d9d8db49) (which looks to be out of date, cause F-Droid is perpetually behind Google Play) did not resolve it. I fully removed Riot and reinstalled 0.8.18 (F-d9d8db49) from F-Droid, and now it respects my volume settings and uses the default ringtone when its not on vibrate.

One bug I did find is if Riot doesn't have file permissions in Android and you go to sign out, picking export and setting a password on your backup presents a "permission denied" error without prompting for file permissions to write the key backup to storage. This seems to affect both the current 0.8.19 Google Play build and the 0.8.18 F-Droid builds of Riot Android on both phones I used for testing.

bmarty commented 5 years ago

@BillCarsonFr can you check this please?