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

Commit 324650d5 authored by Michael Wright's avatar Michael Wright
Browse files

Skip unnecessary IPC when getting VibrationEffect.

If we know there's no configured ringtone-specific effects, we can skip
uncanonicalizing the URI, which normally incurs an IPC.

Bug: 151696203
Test: atest android.os.VibrationEffectTest
Change-Id: I0e3c8f5cd50761a90875d326cc57dcfd4597dd97
parent 962b460f
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -343,6 +343,14 @@ public abstract class VibrationEffect implements Parcelable {
    @TestApi
    @Nullable
    public static VibrationEffect get(Uri uri, Context context) {
        String[] uris = context.getResources().getStringArray(
                com.android.internal.R.array.config_ringtoneEffectUris);

        // Skip doing any IPC if we don't have any effects configured.
        if (uris.length == 0) {
            return null;
        }

        final ContentResolver cr = context.getContentResolver();
        Uri uncanonicalUri = cr.uncanonicalize(uri);
        if (uncanonicalUri == null) {
@@ -351,8 +359,7 @@ public abstract class VibrationEffect implements Parcelable {
            // place.
            uncanonicalUri = uri;
        }
        String[] uris = context.getResources().getStringArray(
                com.android.internal.R.array.config_ringtoneEffectUris);

        for (int i = 0; i < uris.length && i < RINGTONES.length; i++) {
            if (uris[i] == null) {
                continue;