summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author William Luh <williamluh@google.com> 2017-04-18 11:34:38 -0700
committer William Luh <williamluh@google.com> 2017-04-18 11:34:38 -0700
commit5a0a0d80c4f88f52ded9b62bcc3423f6f55de99e (patch)
tree50131321cb427d820c372cf7d900e0ef08f24900
parentc4555784bee072cee02575523c3a30a0f8b516ec (diff)
Prevent settings from crashing when ContentProvider crashes
Use acquireUnstableProvider, which will prevent Settings from crashing when the ContentProvider it's bound to crashes. Bug:36443354 Test: make RunSettingsLibRoboTests Change-Id: Icf1b1529ebb7d31c4060a01cdc63ba005a4f2bab
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java2
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileUtilsTest.java6
2 files changed, 5 insertions, 3 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java b/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java
index 6bcf256a8033..fb48054b7bca 100644
--- a/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java
+++ b/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java
@@ -513,7 +513,7 @@ public class TileUtils {
return null;
}
if (!providerMap.containsKey(authority)) {
- providerMap.put(authority, context.getContentResolver().acquireProvider(uri));
+ providerMap.put(authority, context.getContentResolver().acquireUnstableProvider(uri));
}
return providerMap.get(authority);
}
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileUtilsTest.java
index 5310b7a604b0..8415dc5cbc4a 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileUtilsTest.java
@@ -302,8 +302,10 @@ public class TileUtilsTest {
when(mIContentProvider.call(anyString(),
eq(TileUtils.getMethodFromUri(Uri.parse(URI_GET_SUMMARY))), eq(URI_GET_SUMMARY),
any())).thenReturn(bundle);
- when(mContentResolver.acquireProvider(anyString())).thenReturn(mIContentProvider);
- when(mContentResolver.acquireProvider(any(Uri.class))).thenReturn(mIContentProvider);
+ when(mContentResolver.acquireUnstableProvider(anyString()))
+ .thenReturn(mIContentProvider);
+ when(mContentResolver.acquireUnstableProvider(any(Uri.class)))
+ .thenReturn(mIContentProvider);
TileUtils.getTilesForIntent(mContext, UserHandle.CURRENT, intent, addedCache,
null /* defaultCategory */, outTiles, false /* usePriority */,