From 6259129d69fee12d560b9bc18d3dda2e83193c3e Mon Sep 17 00:00:00 2001 From: Shahriyar Amini Date: Tue, 22 Nov 2016 15:02:07 -0800 Subject: [PATCH] Use preference key specified in injected settings. Bug: 31002801 Test: make RunSettingsRoboTests Reads in optional metadata field for specifying the key used for an injected preference. Change-Id: Ief2ff10c508d42f91906b531cf34906c1c42fdd4 --- .../dashboard/DashboardFeatureProviderImpl.java | 3 +++ .../DashboardFeatureProviderImplTest.java | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java index a3bac9d56fd..4dbf5cf9c03 100644 --- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java @@ -109,6 +109,9 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { if (tile == null || tile.intent == null) { return null; } + if (!TextUtils.isEmpty(tile.key)) { + return tile.key; + } final StringBuilder sb = new StringBuilder(DASHBOARD_TILE_PREF_KEY_PREFIX); final ComponentName component = tile.intent.getComponent(); sb.append(component.getClassName()); diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java index c0bfad546f0..5226a934fcc 100644 --- a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java @@ -144,6 +144,20 @@ public class DashboardFeatureProviderImplTest { assertThat(preference.getOrder()).isEqualTo(Preference.DEFAULT_ORDER); } + @Test + public void bindPreference_withNullKeyTileKey_shouldUseTileKey() { + final Preference preference = new Preference( + ShadowApplication.getInstance().getApplicationContext()); + final Tile tile = new Tile(); + tile.key = "key"; + tile.intent = new Intent(); + tile.intent.setComponent(new ComponentName("pkg", "class")); + mImpl.bindPreferenceToTile(mActivity, preference, tile, null /* key */ + , Preference.DEFAULT_ORDER); + + assertThat(preference.getKey()).isEqualTo(tile.key); + } + @Test public void bindPreference_withBaseOrder_shouldOffsetPriority() { final int baseOrder = 100;