[Feature] Adjust voice-recording seconds remaining notification to 30 seconds and limit to 5min
Signed-off-by: Odin Vex [email protected]
Type of change
- [x] Feature
- [ ] Bugfix
- [ ] Technical
- [x] Other : Adjustment for accessibility
Content
The default voice-recording "seconds remaining" notification only shows up at the last 10sec of a clip and that can cause panic and anxiety at not being able to summarize or catch up to the point being made or discussed in a voice clip.
Users with accessibility needs such as slower talking/communicating/thinking and others with complex issues to talk about are extremely frustrated with the default 2min length of time.
Motivation and context
The notification showing up at the last 10sec is frustratingly short for a number of our users. I've adjusted the notification to show up with 30sec remaining (this seem a sweet-spot for catching a breath, thinking, then voicing to wrap up or prepare for another clip without dragging). I've also adjusted the default voice clip length limit to 5min to give people plenty of time to send a message. These fixes were desperately wanted on our Matrix server so I started supplying APKs to them through our own distribution methods so they can use it until this hopefully makes it mainline.
Main motivation: Accessibility - Our users needed these changes and I feel they'd benefit many.
Tests
-
Determined the variables used in determining the time remaining and when to show the notification.
-
Adjusted time-remaining logic to trigger at 30sec instead of 10sec.
-
Tested notification toast successfully (it is not tied to a specific voice-clip length).
-
Determined the variables used in determining the length of voice-clips.
-
Adjusted
VOICE_MESSAGE_LIMIT_MSappropriately to a more usable 5min limit (up from 2min). -
Tested successfully the voice-clip length limit by recording my own dialogue to another user along with a lot of fan noise. ^_^;
Tested devices
- [x] Physical
- [ ] Emulator
- OS version(s): Android 13
Checklist
- [x] Changes has been tested on an Android device or Android emulator with API 21
- [ ] UI change has been tested on both light and dark themes
- [x] Accessibility has been taken into account. See https://github.com/element-hq/element-android/blob/develop/CONTRIBUTING.md#accessibility
- [x] Pull request is based on the develop branch
- [x] Pull request includes a new file under ./changelog.d. See https://github.com/element-hq/element-android/blob/develop/CONTRIBUTING.md#changelog
- [ ] Pull request includes screenshots or videos if containing UI changes
- [x] Pull request includes a sign off
- [x] You've made a self review of your PR
- [ ] If you have modified the screen flow, or added new screens to the application, you have updated the test UiAllScreensSanityTest.allScreensTest()
Comments
Edit: ~~I didn't include a changelog file because this was not done for a pre-existing Pull Request or Issue.~~
Sign-off is located at the beginning and bottom of this Pull Request, the Contributing Guide mentions it can be a comment in the Pull Request. (I used GitHub's Web Editor to keep things clean as I despise Android Studio and the horrific nightmare it is to use it.)
I can make adjustments if needed.
Signed-off-by: Odin Vex [email protected]
Quality Gate passed
Issues
0 New issues
0 Accepted issues
Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code
Further information: Extremely rarely Element may crash. I have not been able to capture logs regarding it. This is on an Android device with 8GB of RAM (more than 60% free) and plenty of performance so I'm a bit baffled at first. It may be some constraint I'm not aware of or seeing.
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.
I will not allow my private e-mail address to be known just for some CLA. You already have my public GitHub e-mail, that alone is enough. If this is unacceptable then just delete this PR. (Edit: I agree to the CLA but I will not share my private e-mail address just so your backend can 'verify' I agree.)