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

Commit 32fa5931 authored by Michael Wright's avatar Michael Wright
Browse files

Uncanonicalize URIs before comparing them.

In order to ensure we maintain compatibility, we now configure the
canonical URIs instead of the raw URIs. Correspondingly, we need to
uncanonicalize before comparing them.

Note that we uncanonicalize the configured URI, rather than
canonicalizing the one given to us. This is because the canonicalization
format might change (e.g. add extra parameters) at which point they'll
no longer by equal, but should always uncanonicalize to the same value.

Bug: 75947705
Test: manual
Change-Id: If3b02dfef480245210fd2c585c7c727de77a4a73
parent 094b761c
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.os;

import android.annotation.Nullable;
import android.annotation.TestApi;
import android.content.ContentResolver;
import android.content.Context;
import android.hardware.vibrator.V1_0.EffectStrength;
import android.hardware.vibrator.V1_2.Effect;
@@ -277,7 +278,12 @@ public abstract class VibrationEffect implements Parcelable {
            if (uris[i] == null) {
                continue;
            }
            if (Uri.parse(uris[i]).equals(uri)) {
            ContentResolver cr = context.getContentResolver();
            Uri mappedUri = cr.uncanonicalize(Uri.parse(uris[i]));
            if (mappedUri == null) {
                continue;
            }
            if (mappedUri.equals(uri)) {
                return get(RINGTONES[i]);
            }
        }