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
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;
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);
}