Loading src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +26 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import static android.content.Intent.EXTRA_USER; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_ICON_URI; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_SUMMARY; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_SUMMARY_URI; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_TITLE; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_TITLE_URI; import android.app.settings.SettingsEnums; import android.content.ComponentName; Loading Loading @@ -108,12 +110,12 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { if (pref == null) { return; } pref.setTitle(tile.getTitle(activity.getApplicationContext())); if (!TextUtils.isEmpty(key)) { pref.setKey(key); } else { pref.setKey(getDashboardKeyForTile(tile)); } bindTitle(pref, tile); bindSummary(pref, tile); bindIcon(pref, tile, forceRoundedIcon); final Bundle metadata = tile.getMetaData(); Loading Loading @@ -168,6 +170,28 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { launchIntentOrSelectProfile(activity, tile, intent, SettingsEnums.DASHBOARD_SUMMARY); } private void bindTitle(Preference preference, Tile tile) { final CharSequence title = tile.getTitle(mContext.getApplicationContext()); if (title != null) { preference.setTitle(title); return; } if (tile.getMetaData() != null && tile.getMetaData().containsKey( META_DATA_PREFERENCE_TITLE_URI)) { // Set a placeholder title before starting to fetch real title, this is necessary // to avoid preference height change. preference.setTitle(R.string.summary_placeholder); ThreadUtils.postOnBackgroundThread(() -> { final Map<String, IContentProvider> providerMap = new ArrayMap<>(); final String uri = tile.getMetaData().getString(META_DATA_PREFERENCE_TITLE_URI); final String titleFromUri = TileUtils.getTextFromUri( mContext, uri, providerMap, META_DATA_PREFERENCE_TITLE); ThreadUtils.postOnMainThread(() -> preference.setTitle(titleFromUri)); }); } } private void bindSummary(Preference preference, Tile tile) { final CharSequence summary = tile.getSummary(mContext); if (summary != null) { Loading src/com/android/settings/dashboard/SummaryLoader.java +0 −16 Original line number Diff line number Diff line Loading @@ -206,22 +206,6 @@ public class SummaryLoader { }); } /** * Updates all tile's summary to latest cached version. This is necessary to handle the case * where category is updated after summary change. */ public void updateSummaryToCache(DashboardCategory category) { if (category == null) { return; } for (Tile tile : category.getTiles()) { final String key = mDashboardFeatureProvider.getDashboardKeyForTile(tile); if (mSummaryTextMap.containsKey(key)) { tile.overrideSummary(mSummaryTextMap.get(key)); } } } private synchronized void setListeningW(boolean listening) { if (mWorkerListening == listening) { return; Loading tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java +20 −5 Original line number Diff line number Diff line Loading @@ -249,7 +249,7 @@ public class DashboardFeatureProviderImplTest { } @Test @Config(shadows = {ShadowTileUtils.class, ShadowThreadUtils.class}) @Config(shadows = {ShadowTileUtils.class}) public void bindPreference_hasSummaryUri_shouldLoadSummaryFromContentProvider() { final Preference preference = new Preference(RuntimeEnvironment.application); final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); Loading @@ -262,6 +262,20 @@ public class DashboardFeatureProviderImplTest { assertThat(preference.getSummary()).isEqualTo(ShadowTileUtils.MOCK_SUMMARY); } @Test @Config(shadows = {ShadowTileUtils.class}) public void bindPreference_hasTitleUri_shouldLoadFromContentProvider() { final Preference preference = new Preference(RuntimeEnvironment.application); final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mActivityInfo.metaData.putString(TileUtils.META_DATA_PREFERENCE_TITLE_URI, "content://com.android.settings/tile_title"); mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, preference, tile, null /*key */, Preference.DEFAULT_ORDER); assertThat(preference.getTitle()).isEqualTo(ShadowTileUtils.MOCK_SUMMARY); } @Test public void bindPreference_withNullKeyTileKey_shouldUseTileKey() { final Preference preference = new Preference(RuntimeEnvironment.application); Loading @@ -274,7 +288,7 @@ public class DashboardFeatureProviderImplTest { } @Test @Config(shadows = {ShadowTileUtils.class, ShadowThreadUtils.class}) @Config(shadows = {ShadowTileUtils.class}) public void bindPreference_withIconUri_shouldLoadIconFromContentProvider() { final Preference preference = new Preference(RuntimeEnvironment.application); mActivityInfo.packageName = RuntimeEnvironment.application.getPackageName(); Loading Loading @@ -341,7 +355,8 @@ public class DashboardFeatureProviderImplTest { final Intent launchIntent = shadowActivity.getNextStartedActivityForResult().intent; assertThat(launchIntent.getAction()) .isEqualTo("TestAction"); assertThat(launchIntent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY, 0)) assertThat( launchIntent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY, 0)) .isEqualTo(MetricsEvent.SETTINGS_GESTURES); } Loading tests/robotests/src/com/android/settings/dashboard/SummaryLoaderTest.java +0 −27 Original line number Diff line number Diff line Loading @@ -16,21 +16,16 @@ package com.android.settings.dashboard; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_KEYHINT; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; import android.app.Activity; import android.content.Context; import android.content.pm.ActivityInfo; import android.os.Bundle; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.Tile; import org.junit.Before; Loading Loading @@ -89,26 +84,4 @@ public class SummaryLoaderTest { assertThat(mCallbackInvoked).isTrue(); } @Test public void testUpdateSummaryToCache_hasCache_shouldUpdate() { final String testSummary = "test_summary"; final DashboardCategory category = new DashboardCategory(CategoryKey.CATEGORY_HOMEPAGE); final ActivityInfo activityInfo = new ActivityInfo(); activityInfo.packageName = "pkg"; activityInfo.name = "cls"; activityInfo.metaData = new Bundle(); activityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "123"); final Tile tile = new Tile(activityInfo, category.key); category.addTile(tile); when(mFeatureFactory.dashboardFeatureProvider.getDashboardKeyForTile(tile)) .thenReturn(tile.getKey(RuntimeEnvironment.application)); mSummaryLoader.updateSummaryIfNeeded(mContext, tile, testSummary); tile.overrideSummary(null); mSummaryLoader.updateSummaryToCache(category); assertThat(tile.getSummary(mContext)).isEqualTo(testSummary); } } tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanupJobServiceTest.java +0 −3 Original line number Diff line number Diff line Loading @@ -34,7 +34,6 @@ import android.content.Context; import com.android.settings.R; import com.android.settings.testutils.DatabaseTestUtils; import com.android.settings.testutils.shadow.ShadowThreadUtils; import org.junit.After; import org.junit.Before; Loading @@ -45,13 +44,11 @@ import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import java.util.List; import java.util.concurrent.TimeUnit; @RunWith(RobolectricTestRunner.class) @Config(shadows = ShadowThreadUtils.class) public class AnomalyCleanupJobServiceTest { private static final int UID = 1234; private static final String PACKAGE_NAME = "com.android.package"; Loading Loading
src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +26 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import static android.content.Intent.EXTRA_USER; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_ICON_URI; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_SUMMARY; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_SUMMARY_URI; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_TITLE; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_TITLE_URI; import android.app.settings.SettingsEnums; import android.content.ComponentName; Loading Loading @@ -108,12 +110,12 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { if (pref == null) { return; } pref.setTitle(tile.getTitle(activity.getApplicationContext())); if (!TextUtils.isEmpty(key)) { pref.setKey(key); } else { pref.setKey(getDashboardKeyForTile(tile)); } bindTitle(pref, tile); bindSummary(pref, tile); bindIcon(pref, tile, forceRoundedIcon); final Bundle metadata = tile.getMetaData(); Loading Loading @@ -168,6 +170,28 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { launchIntentOrSelectProfile(activity, tile, intent, SettingsEnums.DASHBOARD_SUMMARY); } private void bindTitle(Preference preference, Tile tile) { final CharSequence title = tile.getTitle(mContext.getApplicationContext()); if (title != null) { preference.setTitle(title); return; } if (tile.getMetaData() != null && tile.getMetaData().containsKey( META_DATA_PREFERENCE_TITLE_URI)) { // Set a placeholder title before starting to fetch real title, this is necessary // to avoid preference height change. preference.setTitle(R.string.summary_placeholder); ThreadUtils.postOnBackgroundThread(() -> { final Map<String, IContentProvider> providerMap = new ArrayMap<>(); final String uri = tile.getMetaData().getString(META_DATA_PREFERENCE_TITLE_URI); final String titleFromUri = TileUtils.getTextFromUri( mContext, uri, providerMap, META_DATA_PREFERENCE_TITLE); ThreadUtils.postOnMainThread(() -> preference.setTitle(titleFromUri)); }); } } private void bindSummary(Preference preference, Tile tile) { final CharSequence summary = tile.getSummary(mContext); if (summary != null) { Loading
src/com/android/settings/dashboard/SummaryLoader.java +0 −16 Original line number Diff line number Diff line Loading @@ -206,22 +206,6 @@ public class SummaryLoader { }); } /** * Updates all tile's summary to latest cached version. This is necessary to handle the case * where category is updated after summary change. */ public void updateSummaryToCache(DashboardCategory category) { if (category == null) { return; } for (Tile tile : category.getTiles()) { final String key = mDashboardFeatureProvider.getDashboardKeyForTile(tile); if (mSummaryTextMap.containsKey(key)) { tile.overrideSummary(mSummaryTextMap.get(key)); } } } private synchronized void setListeningW(boolean listening) { if (mWorkerListening == listening) { return; Loading
tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java +20 −5 Original line number Diff line number Diff line Loading @@ -249,7 +249,7 @@ public class DashboardFeatureProviderImplTest { } @Test @Config(shadows = {ShadowTileUtils.class, ShadowThreadUtils.class}) @Config(shadows = {ShadowTileUtils.class}) public void bindPreference_hasSummaryUri_shouldLoadSummaryFromContentProvider() { final Preference preference = new Preference(RuntimeEnvironment.application); final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); Loading @@ -262,6 +262,20 @@ public class DashboardFeatureProviderImplTest { assertThat(preference.getSummary()).isEqualTo(ShadowTileUtils.MOCK_SUMMARY); } @Test @Config(shadows = {ShadowTileUtils.class}) public void bindPreference_hasTitleUri_shouldLoadFromContentProvider() { final Preference preference = new Preference(RuntimeEnvironment.application); final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mActivityInfo.metaData.putString(TileUtils.META_DATA_PREFERENCE_TITLE_URI, "content://com.android.settings/tile_title"); mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, preference, tile, null /*key */, Preference.DEFAULT_ORDER); assertThat(preference.getTitle()).isEqualTo(ShadowTileUtils.MOCK_SUMMARY); } @Test public void bindPreference_withNullKeyTileKey_shouldUseTileKey() { final Preference preference = new Preference(RuntimeEnvironment.application); Loading @@ -274,7 +288,7 @@ public class DashboardFeatureProviderImplTest { } @Test @Config(shadows = {ShadowTileUtils.class, ShadowThreadUtils.class}) @Config(shadows = {ShadowTileUtils.class}) public void bindPreference_withIconUri_shouldLoadIconFromContentProvider() { final Preference preference = new Preference(RuntimeEnvironment.application); mActivityInfo.packageName = RuntimeEnvironment.application.getPackageName(); Loading Loading @@ -341,7 +355,8 @@ public class DashboardFeatureProviderImplTest { final Intent launchIntent = shadowActivity.getNextStartedActivityForResult().intent; assertThat(launchIntent.getAction()) .isEqualTo("TestAction"); assertThat(launchIntent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY, 0)) assertThat( launchIntent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY, 0)) .isEqualTo(MetricsEvent.SETTINGS_GESTURES); } Loading
tests/robotests/src/com/android/settings/dashboard/SummaryLoaderTest.java +0 −27 Original line number Diff line number Diff line Loading @@ -16,21 +16,16 @@ package com.android.settings.dashboard; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_KEYHINT; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; import android.app.Activity; import android.content.Context; import android.content.pm.ActivityInfo; import android.os.Bundle; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.Tile; import org.junit.Before; Loading Loading @@ -89,26 +84,4 @@ public class SummaryLoaderTest { assertThat(mCallbackInvoked).isTrue(); } @Test public void testUpdateSummaryToCache_hasCache_shouldUpdate() { final String testSummary = "test_summary"; final DashboardCategory category = new DashboardCategory(CategoryKey.CATEGORY_HOMEPAGE); final ActivityInfo activityInfo = new ActivityInfo(); activityInfo.packageName = "pkg"; activityInfo.name = "cls"; activityInfo.metaData = new Bundle(); activityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "123"); final Tile tile = new Tile(activityInfo, category.key); category.addTile(tile); when(mFeatureFactory.dashboardFeatureProvider.getDashboardKeyForTile(tile)) .thenReturn(tile.getKey(RuntimeEnvironment.application)); mSummaryLoader.updateSummaryIfNeeded(mContext, tile, testSummary); tile.overrideSummary(null); mSummaryLoader.updateSummaryToCache(category); assertThat(tile.getSummary(mContext)).isEqualTo(testSummary); } }
tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanupJobServiceTest.java +0 −3 Original line number Diff line number Diff line Loading @@ -34,7 +34,6 @@ import android.content.Context; import com.android.settings.R; import com.android.settings.testutils.DatabaseTestUtils; import com.android.settings.testutils.shadow.ShadowThreadUtils; import org.junit.After; import org.junit.Before; Loading @@ -45,13 +44,11 @@ import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import java.util.List; import java.util.concurrent.TimeUnit; @RunWith(RobolectricTestRunner.class) @Config(shadows = ShadowThreadUtils.class) public class AnomalyCleanupJobServiceTest { private static final int UID = 1234; private static final String PACKAGE_NAME = "com.android.package"; Loading