summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorMichael Wright <michaelwr@google.com>2020-03-19 19:10:57 +0000
committerMichael Wright <michaelwr@google.com>2020-03-19 19:20:47 +0000
commit324650d5fc53240fe7ef1eec4e01b3c07dbee4cb (patch)
tree0f25c571872c2e4e69a641027bd5a469b94c4d24 /core/java
parent962b460f1c1d8bb93926fa86b215cffb4265715e (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.java11
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;