Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02db36fb authored by Tyler Gunn's avatar Tyler Gunn
Browse files

Add exception handling when querying the vibration effect.

Ensure Telecom doesn't crash if we can't find the correct vibration effect
for the current ringtone URI.

Test: Manual testing; ensured existing vibration works as expected.
Bug: 124160678
Change-Id: Ie63cca9a76d788b5ce0685182812eb72b7e1313c
parent 5ee82e0a
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -223,7 +223,16 @@ public class Ringer {
        Ringtone ringtone = factory.getRingtone(call);
        Uri ringtoneUri = ringtone != null ? ringtone.getUri() : null;
        if (ringtoneUri != null) {
            try {
                effect = mVibrationEffectProxy.get(ringtoneUri, mContext);
            } catch (IllegalArgumentException iae) {
                // Deep in the bowels of the VibrationEffect class it is possible for an
                // IllegalArgumentException to be thrown if there is an invalid URI specified in the
                // device config, or a content provider failure.  Rather than crashing the Telecom
                // process we will just use the default vibration effect.
                Log.e(this, iae, "getVibrationEffectForCall: failed to get vibration effect");
                effect = null;
            }
        }

        if (effect == null) {