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

Commit bc4d0d92 authored by Michael Wright's avatar Michael Wright
Browse files

Ignore notifications with zero-timing vibrations.

It's now an error to create one of these, but we don't want to crash
system_server because an app passed us a bad value. Instead just catch
the exception and ignore the pattern.

Bug: 36552808
Test: App that posts a notification with all 0 timings. Crashes before
      this patch but not after.

Change-Id: I1f8e2d6d3e7df1186c7a1ce3925e5358cb32290d
parent 2a5b32fa
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -179,6 +179,7 @@ import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -3645,6 +3646,10 @@ public class NotificationManagerService extends SystemService {
            mVibrator.vibrate(record.sbn.getUid(), record.sbn.getOpPkg(),
                    effect, record.getAudioAttributes());
            return true;
        } catch (IllegalArgumentException e) {
            Slog.e(TAG, "Error creating vibration waveform with pattern: " +
                    Arrays.toString(vibration));
            return false;
        } finally{
            Binder.restoreCallingIdentity(identity);
        }