diff options
| author | Michael Wright <michaelwr@google.com> | 2020-03-19 19:10:57 +0000 |
|---|---|---|
| committer | Michael Wright <michaelwr@google.com> | 2020-03-19 19:20:47 +0000 |
| commit | 324650d5fc53240fe7ef1eec4e01b3c07dbee4cb (patch) | |
| tree | 0f25c571872c2e4e69a641027bd5a469b94c4d24 /core/java | |
| parent | 962b460f1c1d8bb93926fa86b215cffb4265715e (diff) | |
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
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/os/VibrationEffect.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/core/java/android/os/VibrationEffect.java b/core/java/android/os/VibrationEffect.java index 1992f1dc911e..aa89b515adc6 100644 --- a/core/java/android/os/VibrationEffect.java +++ b/core/java/android/os/VibrationEffect.java @@ -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; |
