Similar to zulip.mp3 in the previous commit, this file is corrupted
and only playable in some browsers.
Re-download it from the source[^1], and convert it to MP3 via
`ffmpeg`.
[^1]: https://freesound.org/people/InspectorJ/sounds/411089/ per docs/THIRDPARTY
This file's bytes changed in ba46dc83c6, corrupted by some unknown
process; its bytes begin:
```
00000000: efbf bdef bfbd efbf bd64 0000 0000 0000 .........d......
00000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000020: 0000 0000 0000 0000 0000 496e 666f 0000 ..........Info..
00000030: 000f 0000 000f 0000 1a1e 0011 1111 1111 ................
00000040: 1122 2222 2222 2222 3333 3333 3333 4444 ."""""""333333DD
00000050: 4444 4444 4455 5555 5555 5555 6666 6666 DDDDDUUUUUUUffff
00000060: 6666 7777 7777 7777 77ef bfbd efbf bdef ffwwwwwww.......
00000070: bfbd efbf bdef bfbd efbf bdef bfbd efbf ................
00000080: bdef bfbd efbf bdef bfbd efbf bdef bfbd ................
00000090: efbf bdef bfbd efbf bdef bfbd efbf bdef ................
```
This is not an MP3 file (which should begin with the bytes `fffb`) nor
an MP3 encapsulated in ID3 (which would begin `4944 33`). This left
it playable by some browsers, but not others like Safari.
Restore the version from before ba46dc83c6, which is universally
recognized as an MP3 file.
This is the same sound that since zulip/zulip-mobile#5221 has been
the default notification sound for Zulip on Android.
The actual sound was created by Anders.
Co-authored-by: Anders Kaseorg <anders@zulip.com>
Also, add a new notification sound, "ding". It comes from
https://freesound.org, where the original Zulip notification sound comes
from as well. In the future, new sounds can be added by adding audio
files to the `static/audio/notification_sounds` directory.
Tweaked significantly by tabbott:
* Avoided removing static/audio/zulip.ogg, because that file is
checked for by old versions of the desktop app.
* Added a views check for the sound being valid + tests.
* Added additional tests.
* Restructured the test_events test to be cleaner.
* Removed check_bool_or_string.
* Increased max length of notification_sound.
* Provide available_notification_sounds in events data set if global
notifications settings are requested.
Fixes#8051.