try-catch `new ToneGenerator` and log errors

Phillip Davis created

trouble reproducing reports of failure stemming from
`WebRTCWrapper.applyDtmfTone` failing on this constructor, specifically:
```
at android.media.ToneGenerator.native_setup(Native Method)
at android.media.ToneGenerator.<init>(ToneGenerator.java:751)
```
so we log the error for next time and catch it to prevent crashing, and
instead just dont play the tone

Change summary

src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java | 11 
1 file changed, 8 insertions(+), 3 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java 🔗

@@ -735,9 +735,14 @@ public class WebRTCWrapper {
         }
         final var handler = new android.os.Handler(android.os.Looper.getMainLooper());
         handler.post(() -> {
-            final var toneGenerator = new ToneGenerator(AudioManager.STREAM_VOICE_CALL, DEFAULT_TONE_VOLUME);
-            toneGenerator.startTone(TONE_CODES.get(tone), TONE_DURATION);
-            handler.postDelayed(() -> toneGenerator.release(), TONE_DURATION+2);
+            try {
+                final var toneGenerator = new ToneGenerator(AudioManager.STREAM_VOICE_CALL, DEFAULT_TONE_VOLUME);
+                toneGenerator.startTone(TONE_CODES.get(tone), TONE_DURATION);
+                handler.postDelayed(() -> toneGenerator.release(), TONE_DURATION+2);
+                Log.d(EXTENDED_LOGGING_TAG, "tone generator created");
+            } catch (final RuntimeException e) {
+                Log.e(EXTENDED_LOGGING_TAG, "could not create tone generator for DTMF feedback", e);
+            }
         });
 
         return true;