diff options
| author | 2017-08-30 14:56:46 -0700 | |
|---|---|---|
| committer | 2017-09-07 11:50:28 -0700 | |
| commit | 00932ebb963272f9a6be6587d0e3409228549196 (patch) | |
| tree | 2e008825bc64f06014c5bc7352da68bca6b9657d /packages/SettingsLib/src | |
| parent | add1dd4b0def821280aa24b5725e39b3a64917cc (diff) | |
Add method to update tile's remoteview using summaryUri
- Calling com.android.settingslib.drawer.TileUtils#updateTileData no
longer sets the summary in RemoteView.
- To update summary and title of remoteview,
com.android.settingslib.drawer.TileUtils#updateTileUsingSummaryUri
should be called
bug: 62713030
Test: Added robolectric tests, also manually tested settings
Change-Id: I8c63601a901d5b140e36baec424c226724c43bc4
Diffstat (limited to 'packages/SettingsLib/src')
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java b/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java index fc0a444915c3..713e9675cccd 100644 --- a/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java +++ b/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java @@ -428,15 +428,6 @@ public class TileUtils { if (metaData.containsKey(META_DATA_PREFERENCE_CUSTOM_VIEW)) { int layoutId = metaData.getInt(META_DATA_PREFERENCE_CUSTOM_VIEW); remoteViews = new RemoteViews(applicationInfo.packageName, layoutId); - if (metaData.containsKey(META_DATA_PREFERENCE_SUMMARY_URI)) { - String uriString = metaData.getString( - META_DATA_PREFERENCE_SUMMARY_URI); - String overrideSummary = getTextFromUri(context, uriString, providerMap, - META_DATA_PREFERENCE_SUMMARY); - if (overrideSummary != null) { - remoteViews.setTextViewText(android.R.id.summary, overrideSummary); - } - } } } } catch (PackageManager.NameNotFoundException | Resources.NotFoundException e) { @@ -543,6 +534,30 @@ public class TileUtils { } } + public static void updateTileUsingSummaryUri(Context context, Tile tile) { + if (tile == null || tile.metaData == null || + !tile.metaData.containsKey(META_DATA_PREFERENCE_SUMMARY_URI)) { + return; + } + + final Map<String, IContentProvider> providerMap = new HashMap<>(); + + final String uriString = tile.metaData.getString(META_DATA_PREFERENCE_SUMMARY_URI); + final Bundle bundle = getBundleFromUri(context, uriString, providerMap); + final String overrideSummary = getString(bundle, META_DATA_PREFERENCE_SUMMARY); + final String overrideTitle = getString(bundle, META_DATA_PREFERENCE_TITLE); + if (overrideSummary != null) { + tile.remoteViews.setTextViewText(android.R.id.summary, overrideSummary); + } + if (overrideTitle != null) { + tile.remoteViews.setTextViewText(android.R.id.title, overrideTitle); + } + } + + private static String getString(Bundle bundle, String key) { + return bundle == null ? null : bundle.getString(key); + } + private static IContentProvider getProviderFromUri(Context context, Uri uri, Map<String, IContentProvider> providerMap) { if (uri == null) { |