diff --git a/src/com/android/settings/core/SettingsBaseActivity.java b/src/com/android/settings/core/SettingsBaseActivity.java index 4ab1117d578..57697a689e5 100644 --- a/src/com/android/settings/core/SettingsBaseActivity.java +++ b/src/com/android/settings/core/SettingsBaseActivity.java @@ -111,7 +111,7 @@ public class SettingsBaseActivity extends FragmentActivity { filter.addDataScheme(DATA_SCHEME_PKG); registerReceiver(mPackageReceiver, filter); - new CategoriesUpdateTask().execute(); + updateCategories(); } @Override @@ -154,7 +154,6 @@ public class SettingsBaseActivity extends FragmentActivity { } } - private boolean isLockTaskModePinned() { final ActivityManager activityManager = getApplicationContext().getSystemService(ActivityManager.class); @@ -226,7 +225,7 @@ public class SettingsBaseActivity extends FragmentActivity { private class PackageReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - new CategoriesUpdateTask().execute(); + updateCategories(); } } } diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java index e9b7f33992c..2cfcbe68e6d 100644 --- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java @@ -32,6 +32,7 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; +import android.net.Uri; import android.os.Bundle; import android.os.UserHandle; import android.provider.Settings; @@ -118,10 +119,10 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { bindTitle(pref, tile); bindSummary(pref, tile); bindIcon(pref, tile, forceRoundedIcon); + final Bundle metadata = tile.getMetaData(); String clsName = null; String action = null; - if (metadata != null) { clsName = metadata.getString(SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS); action = metadata.getString(META_DATA_KEY_INTENT_ACTION); @@ -140,10 +141,9 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { return true; }); } - final String skipOffsetPackageName = activity.getPackageName(); - if (tile.hasOrder()) { + final String skipOffsetPackageName = activity.getPackageName(); final int order = tile.getOrder(); boolean shouldSkipBaseOrderOffset = TextUtils.equals( skipOffsetPackageName, tile.getIntent().getComponent().getPackageName()); @@ -182,16 +182,20 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { // to avoid preference height change. preference.setTitle(R.string.summary_placeholder); - ThreadUtils.postOnBackgroundThread(() -> { - final Map 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)); - }); + final Uri uri = TileUtils.getCompleteUri(tile, META_DATA_PREFERENCE_TITLE_URI); + refreshTitle(uri, preference); } } + private void refreshTitle(Uri uri, Preference preference) { + ThreadUtils.postOnBackgroundThread(() -> { + final Map providerMap = new ArrayMap<>(); + 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) { @@ -202,22 +206,26 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { // to avoid preference height change. preference.setSummary(R.string.summary_placeholder); - ThreadUtils.postOnBackgroundThread(() -> { - final Map providerMap = new ArrayMap<>(); - final String uri = tile.getMetaData().getString(META_DATA_PREFERENCE_SUMMARY_URI); - final String summaryFromUri = TileUtils.getTextFromUri( - mContext, uri, providerMap, META_DATA_PREFERENCE_SUMMARY); - ThreadUtils.postOnMainThread(() -> preference.setSummary(summaryFromUri)); - }); + final Uri uri = TileUtils.getCompleteUri(tile, META_DATA_PREFERENCE_SUMMARY_URI); + refreshSummary(uri, preference); } else { preference.setSummary(R.string.summary_placeholder); } } + private void refreshSummary(Uri uri, Preference preference) { + ThreadUtils.postOnBackgroundThread(() -> { + final Map providerMap = new ArrayMap<>(); + final String summaryFromUri = TileUtils.getTextFromUri( + mContext, uri, providerMap, META_DATA_PREFERENCE_SUMMARY); + ThreadUtils.postOnMainThread(() -> preference.setSummary(summaryFromUri)); + }); + } + @VisibleForTesting void bindIcon(Preference preference, Tile tile, boolean forceRoundedIcon) { // Use preference context instead here when get icon from Tile, as we are using the context - // to get the style to tint the icon. Using mContext here won't get the correct style. + // to get the style to tint the icon. Using mContext here won't get the correct style. final Icon tileIcon = tile.getIcon(preference.getContext()); if (tileIcon != null) { Drawable iconDrawable = tileIcon.loadDrawable(preference.getContext()); @@ -238,7 +246,7 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { packageName = intent.getComponent().getPackageName(); } final Map providerMap = new ArrayMap<>(); - final String uri = tile.getMetaData().getString(META_DATA_PREFERENCE_ICON_URI); + final Uri uri = TileUtils.getCompleteUri(tile, META_DATA_PREFERENCE_ICON_URI); final Pair iconInfo = TileUtils.getIconFromUri( mContext, packageName, uri, providerMap); if (iconInfo == null) { diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java index 01a2b146732..3575b7293db 100644 --- a/src/com/android/settings/dashboard/DashboardFragment.java +++ b/src/com/android/settings/dashboard/DashboardFragment.java @@ -98,11 +98,11 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment // And wire up with lifecycle. final Lifecycle lifecycle = getSettingsLifecycle(); - uniqueControllerFromXml - .stream() - .filter(controller -> controller instanceof LifecycleObserver) - .forEach( - controller -> lifecycle.addObserver((LifecycleObserver) controller)); + uniqueControllerFromXml.forEach(controller -> { + if (controller instanceof LifecycleObserver) { + lifecycle.addObserver((LifecycleObserver) controller); + } + }); mPlaceholderPreferenceController = new DashboardTilePlaceholderPreferenceController(context); @@ -115,15 +115,13 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment @VisibleForTesting void checkUiBlocker(List controllers) { final List keys = new ArrayList<>(); - controllers - .stream() - .filter(controller -> controller instanceof BasePreferenceController.UiBlocker) - .forEach(controller -> { - if (controller.isAvailable()) { - ((BasePreferenceController) controller).setUiBlockListener(this); - keys.add(controller.getPreferenceKey()); - } - }); + controllers.forEach(controller -> { + if (controller instanceof BasePreferenceController.UiBlocker + && controller.isAvailable()) { + ((BasePreferenceController) controller).setUiBlockListener(this); + keys.add(controller.getPreferenceKey()); + } + }); if (!keys.isEmpty()) { mBlockerController = new UiBlockerController(keys); diff --git a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java index dffa96861c2..03c5de30f23 100644 --- a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java +++ b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java @@ -47,6 +47,7 @@ import com.android.internal.logging.nano.MetricsProto; import com.android.settings.dashboard.DashboardFeatureProviderImpl; import com.android.settings.testutils.shadow.ShadowAccountManager; import com.android.settings.testutils.shadow.ShadowUserManager; +import com.android.settingslib.drawer.ActivityTile; import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.Tile; @@ -105,7 +106,7 @@ public class AccountDetailDashboardFragmentTest { @Test public void refreshDashboardTiles_HasAccountType_shouldDisplay() { - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT_DETAIL); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT_DETAIL); mActivityInfo.metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT_DETAIL); mActivityInfo.metaData.putString(METADATA_ACCOUNT_TYPE, "com.abc"); @@ -114,7 +115,7 @@ public class AccountDetailDashboardFragmentTest { @Test public void refreshDashboardTiles_NoAccountType_shouldNotDisplay() { - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT_DETAIL); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT_DETAIL); mActivityInfo.metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT_DETAIL); assertThat(mFragment.displayTile(tile)).isFalse(); @@ -122,7 +123,7 @@ public class AccountDetailDashboardFragmentTest { @Test public void refreshDashboardTiles_OtherAccountType_shouldNotDisplay() { - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT_DETAIL); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT_DETAIL); mActivityInfo.metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT_DETAIL); mActivityInfo.metaData.putString(METADATA_ACCOUNT_TYPE, "com.other"); @@ -138,7 +139,7 @@ public class AccountDetailDashboardFragmentTest { when(packageManager.resolveActivity(any(Intent.class), anyInt())) .thenReturn(mock(ResolveInfo.class)); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT_DETAIL); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT_DETAIL); mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key"); mActivityInfo.metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT); mActivityInfo.metaData.putString(METADATA_ACCOUNT_TYPE, "com.abc"); @@ -166,7 +167,7 @@ public class AccountDetailDashboardFragmentTest { public void displayTile_shouldAddUserHandleToTileIntent() { mFragment.mUserHandle = new UserHandle(1); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT_DETAIL); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT_DETAIL); mActivityInfo.metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT); mActivityInfo.metaData.putString(METADATA_ACCOUNT_TYPE, "com.abc"); diff --git a/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java b/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java index 0de212d73d0..1efaed9a367 100644 --- a/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java @@ -27,6 +27,7 @@ import android.content.pm.ApplicationInfo; import android.os.Bundle; import android.util.Pair; +import com.android.settingslib.drawer.ActivityTile; import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.Tile; @@ -68,8 +69,8 @@ public class CategoryManagerTest { @Test public void backwardCompatCleanupForCategory_shouldNotChangeCategoryForNewKeys() { - final Tile tile1 = new Tile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT); - final Tile tile2 = new Tile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT); + final Tile tile1 = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT); + final Tile tile2 = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT); final DashboardCategory category = new DashboardCategory(CategoryKey.CATEGORY_ACCOUNT); category.addTile(tile1); category.addTile(tile2); @@ -85,9 +86,9 @@ public class CategoryManagerTest { @Test public void backwardCompatCleanupForCategory_shouldNotChangeCategoryForMixedKeys() { - final Tile tile1 = new Tile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT); + final Tile tile1 = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT); final String oldCategory = "com.android.settings.category.wireless"; - final Tile tile2 = new Tile(mActivityInfo, oldCategory); + final Tile tile2 = new ActivityTile(mActivityInfo, oldCategory); final DashboardCategory category1 = new DashboardCategory(CategoryKey.CATEGORY_ACCOUNT); category1.addTile(tile1); final DashboardCategory category2 = new DashboardCategory(oldCategory); @@ -108,7 +109,7 @@ public class CategoryManagerTest { @Test public void backwardCompatCleanupForCategory_shouldChangeCategoryForOldKeys() { final String oldCategory = "com.android.settings.category.wireless"; - final Tile tile1 = new Tile(mActivityInfo, oldCategory); + final Tile tile1 = new ActivityTile(mActivityInfo, oldCategory); tile1.setCategory(oldCategory); final DashboardCategory category1 = new DashboardCategory(oldCategory); category1.addTile(tile1); @@ -146,9 +147,9 @@ public class CategoryManagerTest { activityInfo3.metaData.putInt(META_DATA_KEY_ORDER, 200); activityInfo3.packageName = testPackage; activityInfo3.name = "class3"; - final Tile tile1 = new Tile(activityInfo1, category.key); - final Tile tile2 = new Tile(activityInfo2, category.key); - final Tile tile3 = new Tile(activityInfo3, category.key); + final Tile tile1 = new ActivityTile(activityInfo1, category.key); + final Tile tile2 = new ActivityTile(activityInfo2, category.key); + final Tile tile3 = new ActivityTile(activityInfo3, category.key); category.addTile(tile1); category.addTile(tile2); @@ -186,9 +187,9 @@ public class CategoryManagerTest { activityInfo3.packageName = testPackage1; activityInfo3.name = "class3"; - final Tile tile1 = new Tile(activityInfo1, category.key); - final Tile tile2 = new Tile(activityInfo2, category.key); - final Tile tile3 = new Tile(activityInfo3, category.key); + final Tile tile1 = new ActivityTile(activityInfo1, category.key); + final Tile tile2 = new ActivityTile(activityInfo2, category.key); + final Tile tile3 = new ActivityTile(activityInfo3, category.key); category.addTile(tile1); category.addTile(tile2); category.addTile(tile3); @@ -223,9 +224,9 @@ public class CategoryManagerTest { activityInfo3.name = "class3"; activityInfo3.metaData = new Bundle(); activityInfo3.metaData.putInt(META_DATA_KEY_ORDER, 50); - final Tile tile1 = new Tile(activityInfo1, category.key); - final Tile tile2 = new Tile(activityInfo2, category.key); - final Tile tile3 = new Tile(activityInfo3, category.key); + final Tile tile1 = new ActivityTile(activityInfo1, category.key); + final Tile tile2 = new ActivityTile(activityInfo2, category.key); + final Tile tile3 = new ActivityTile(activityInfo3, category.key); category.addTile(tile1); category.addTile(tile2); category.addTile(tile3); @@ -268,10 +269,10 @@ public class CategoryManagerTest { activityInfo4.metaData = new Bundle(); activityInfo4.metaData.putInt(META_DATA_KEY_ORDER, -1); - final Tile tile1 = new Tile(activityInfo1, category.key); - final Tile tile2 = new Tile(activityInfo2, category.key); - final Tile tile4 = new Tile(activityInfo4, category.key); - final Tile tile3 = new Tile(activityInfo3, category.key); + final Tile tile1 = new ActivityTile(activityInfo1, category.key); + final Tile tile2 = new ActivityTile(activityInfo2, category.key); + final Tile tile4 = new ActivityTile(activityInfo4, category.key); + final Tile tile3 = new ActivityTile(activityInfo3, category.key); category.addTile(tile1); category.addTile(tile2); category.addTile(tile3); @@ -310,9 +311,9 @@ public class CategoryManagerTest { activityInfo3.name = "class3"; activityInfo3.metaData = new Bundle(); activityInfo3.metaData.putInt(META_DATA_KEY_ORDER, 1); - final Tile tile1 = new Tile(activityInfo1, category.key); - final Tile tile2 = new Tile(activityInfo2, category.key); - final Tile tile3 = new Tile(activityInfo3, category.key); + final Tile tile1 = new ActivityTile(activityInfo1, category.key); + final Tile tile2 = new ActivityTile(activityInfo2, category.key); + final Tile tile3 = new ActivityTile(activityInfo3, category.key); category.addTile(tile1); category.addTile(tile2); category.addTile(tile3); @@ -347,9 +348,9 @@ public class CategoryManagerTest { activityInfo3.name = "class3"; activityInfo3.metaData = new Bundle(); activityInfo3.metaData.putInt(META_DATA_KEY_ORDER, 50); - final Tile tile1 = new Tile(activityInfo1, category.key); - final Tile tile2 = new Tile(activityInfo2, category.key); - final Tile tile3 = new Tile(activityInfo3, category.key); + final Tile tile1 = new ActivityTile(activityInfo1, category.key); + final Tile tile2 = new ActivityTile(activityInfo2, category.key); + final Tile tile3 = new ActivityTile(activityInfo3, category.key); category.addTile(tile1); category.addTile(tile2); category.addTile(tile3); @@ -381,9 +382,9 @@ public class CategoryManagerTest { activityInfo3.metaData = new Bundle(); activityInfo3.metaData.putInt(META_DATA_KEY_ORDER, 50); - final Tile tile1 = new Tile(activityInfo1, category.key); - final Tile tile2 = new Tile(activityInfo2, category.key); - final Tile tile3 = new Tile(activityInfo3, category.key); + final Tile tile1 = new ActivityTile(activityInfo1, category.key); + final Tile tile2 = new ActivityTile(activityInfo2, category.key); + final Tile tile3 = new ActivityTile(activityInfo3, category.key); category.addTile(tile1); category.addTile(tile2); category.addTile(tile3); diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java index 708485664b3..7dafd0738e6 100644 --- a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java @@ -57,10 +57,10 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.testutils.FakeFeatureFactory; -import com.android.settings.testutils.shadow.ShadowThreadUtils; import com.android.settings.testutils.shadow.ShadowTileUtils; import com.android.settings.testutils.shadow.ShadowUserManager; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; +import com.android.settingslib.drawer.ActivityTile; import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.Tile; import com.android.settingslib.drawer.TileUtils; @@ -127,7 +127,7 @@ public class DashboardFeatureProviderImplTest { @Test public void bindPreference_shouldBindAllData() { final Preference preference = new Preference(RuntimeEnvironment.application); - final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE)); + final Tile tile = spy(new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE)); mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10); doReturn(Icon.createWithBitmap(Bitmap.createBitmap(1, 1, Bitmap.Config.RGB_565))) .when(tile).getIcon(any(Context.class)); @@ -148,7 +148,7 @@ public class DashboardFeatureProviderImplTest { public void bindPreference_noFragmentMetadata_shouldBindIntent() { final Preference preference = new Preference(RuntimeEnvironment.application); mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER); @@ -161,7 +161,7 @@ public class DashboardFeatureProviderImplTest { @Test public void bindPreference_noFragmentMetadata_shouldBindToProfileSelector() { final Preference preference = new Preference(RuntimeEnvironment.application); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); tile.userHandle = new ArrayList<>(); tile.userHandle.add(mock(UserHandle.class)); tile.userHandle.add(mock(UserHandle.class)); @@ -176,7 +176,7 @@ public class DashboardFeatureProviderImplTest { @Test public void bindPreference_noFragmentMetadataSingleUser_shouldBindToDirectLaunchIntent() { final Preference preference = new Preference(RuntimeEnvironment.application); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); tile.userHandle = new ArrayList<>(); tile.userHandle.add(mock(UserHandle.class)); @@ -199,7 +199,7 @@ public class DashboardFeatureProviderImplTest { public void bindPreference_toInternalSettingActivity_shouldBindToDirectLaunchIntentAndNotLog() { final Preference preference = new Preference(RuntimeEnvironment.application); mActivityInfo.packageName = RuntimeEnvironment.application.getPackageName(); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); tile.userHandle = new ArrayList<>(); tile.userHandle.add(mock(UserHandle.class)); @@ -226,7 +226,7 @@ public class DashboardFeatureProviderImplTest { @Test public void bindPreference_withNullKeyNullPriority_shouldGenerateKeyAndPriority() { final Preference preference = new Preference(RuntimeEnvironment.application); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, preference, tile, null /*key */, Preference.DEFAULT_ORDER); @@ -239,7 +239,7 @@ public class DashboardFeatureProviderImplTest { final Preference preference = new Preference(RuntimeEnvironment.application); mActivityInfo.metaData.remove(META_DATA_PREFERENCE_SUMMARY); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, preference, tile, null /*key */, Preference.DEFAULT_ORDER); @@ -252,7 +252,7 @@ public class DashboardFeatureProviderImplTest { @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); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mActivityInfo.metaData.putString(TileUtils.META_DATA_PREFERENCE_SUMMARY_URI, "content://com.android.settings/tile_summary"); @@ -266,7 +266,7 @@ public class DashboardFeatureProviderImplTest { @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); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mActivityInfo.metaData.putString(TileUtils.META_DATA_PREFERENCE_TITLE_URI, "content://com.android.settings/tile_title"); @@ -280,7 +280,7 @@ public class DashboardFeatureProviderImplTest { public void bindPreference_withNullKeyTileKey_shouldUseTileKey() { final Preference preference = new Preference(RuntimeEnvironment.application); mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key"); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, preference, tile, null /* key */, Preference.DEFAULT_ORDER); @@ -292,7 +292,7 @@ public class DashboardFeatureProviderImplTest { public void bindPreference_withIconUri_shouldLoadIconFromContentProvider() { final Preference preference = new Preference(RuntimeEnvironment.application); mActivityInfo.packageName = RuntimeEnvironment.application.getPackageName(); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key"); mActivityInfo.metaData.putString(TileUtils.META_DATA_PREFERENCE_ICON_URI, "content://com.android.settings/tile_icon"); @@ -306,7 +306,7 @@ public class DashboardFeatureProviderImplTest { final int baseOrder = 100; final Preference preference = new Preference(RuntimeEnvironment.application); mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, preference, tile, "123", baseOrder); @@ -319,7 +319,7 @@ public class DashboardFeatureProviderImplTest { final Preference preference = new Preference(RuntimeEnvironment.application); final int testOrder = -30; mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, testOrder); mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, preference, tile, "123", Preference.DEFAULT_ORDER); @@ -330,7 +330,7 @@ public class DashboardFeatureProviderImplTest { @Test public void bindPreference_invalidOrderMetadata_shouldIgnore() { final Preference preference = new Preference(RuntimeEnvironment.application); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mActivityInfo.metaData.putString(META_DATA_KEY_ORDER, "hello"); mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, @@ -343,7 +343,7 @@ public class DashboardFeatureProviderImplTest { public void bindPreference_withIntentActionMetadata_shouldSetLaunchAction() { FragmentActivity activity = Robolectric.buildActivity(FragmentActivity.class).get(); final Preference preference = new Preference(RuntimeEnvironment.application); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key"); mActivityInfo.metaData.putString("com.android.settings.intent.action", "TestAction"); tile.userHandle = null; @@ -366,7 +366,7 @@ public class DashboardFeatureProviderImplTest { mImpl, "mPackageManager", RuntimeEnvironment.application.getPackageManager()); FragmentActivity activity = Robolectric.buildActivity(FragmentActivity.class).get(); final Preference preference = new Preference(RuntimeEnvironment.application); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key"); mActivityInfo.metaData.putString("com.android.settings.intent.action", "TestAction"); tile.userHandle = null; @@ -385,7 +385,7 @@ public class DashboardFeatureProviderImplTest { public void openTileIntent_profileSelectionDialog_shouldShow() { ShadowUserManager.getShadow().addUser(10, "Someone", 0); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); final ArrayList handles = new ArrayList<>(); handles.add(new UserHandle(0)); handles.add(new UserHandle(10)); @@ -402,7 +402,7 @@ public class DashboardFeatureProviderImplTest { ShadowUserManager.getShadow().addUser(10, "Someone", 0); mActivityInfo.metaData.putString(META_DATA_KEY_PROFILE, PROFILE_ALL); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); final ArrayList handles = new ArrayList<>(); handles.add(new UserHandle(0)); handles.add(new UserHandle(10)); @@ -419,7 +419,7 @@ public class DashboardFeatureProviderImplTest { ShadowUserManager.getShadow().addUser(10, "Someone", 0); mActivityInfo.metaData.putString(META_DATA_KEY_PROFILE, PROFILE_PRIMARY); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); final ArrayList handles = new ArrayList<>(); handles.add(new UserHandle(0)); handles.add(new UserHandle(10)); @@ -437,7 +437,7 @@ public class DashboardFeatureProviderImplTest { ShadowUserManager.getShadow().addUser(userId, "Someone", 0); final UserHandle userHandle = new UserHandle(userId); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); tile.getIntent().putExtra(EXTRA_USER, userHandle); final ArrayList handles = new ArrayList<>(); handles.add(new UserHandle(0)); @@ -457,7 +457,7 @@ public class DashboardFeatureProviderImplTest { public void openTileIntent_profileSelectionDialog_invalidUserHandleShouldShow() { ShadowUserManager.getShadow().addUser(10, "Someone", 0); - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); tile.getIntent().putExtra(EXTRA_USER, new UserHandle(30)); final ArrayList handles = new ArrayList<>(); handles.add(new UserHandle(0)); diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java index 188f5668f6a..954a872e614 100644 --- a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java @@ -45,6 +45,7 @@ import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.core.instrumentation.VisibilityLoggerMixin; +import com.android.settingslib.drawer.ActivityTile; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.Tile; @@ -86,7 +87,7 @@ public class DashboardFragmentTest { mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "injected_tile_key"); mFakeFeatureFactory = FakeFeatureFactory.setupForTest(); mDashboardCategory = new DashboardCategory("key"); - mDashboardCategory.addTile(new Tile(mActivityInfo, mDashboardCategory.key)); + mDashboardCategory.addTile(new ActivityTile(mActivityInfo, mDashboardCategory.key)); mTestFragment = new TestFragment(RuntimeEnvironment.application); when(mFakeFeatureFactory.dashboardFeatureProvider .getTilesForCategory(nullable(String.class))) diff --git a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java index 2aee0dd347f..75a1c39bc9b 100644 --- a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java @@ -29,6 +29,7 @@ import android.content.pm.UserInfo; import android.os.UserHandle; import android.os.UserManager; +import com.android.settingslib.drawer.ActivityTile; import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.Tile; @@ -66,7 +67,7 @@ public class ProfileSelectDialogTest { @Test public void updateUserHandlesIfNeeded_Normal() { - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); tile.userHandle.add(NORMAL_USER); ProfileSelectDialog.updateUserHandlesIfNeeded(mContext, tile); @@ -78,7 +79,7 @@ public class ProfileSelectDialogTest { @Test public void updateUserHandlesIfNeeded_Remove() { - final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); + final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); tile.userHandle.add(REMOVED_USER); tile.userHandle.add(NORMAL_USER); tile.userHandle.add(REMOVED_USER); diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowTileUtils.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowTileUtils.java index 8736fe86605..e46d72fba83 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowTileUtils.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowTileUtils.java @@ -18,6 +18,7 @@ package com.android.settings.testutils.shadow; import android.content.Context; import android.content.IContentProvider; +import android.net.Uri; import android.util.Pair; import com.android.settings.R; @@ -35,14 +36,14 @@ public class ShadowTileUtils { public static final String MOCK_SUMMARY = "summary"; @Implementation - protected static String getTextFromUri(Context context, String uriString, + protected static String getTextFromUri(Context context, Uri uri, Map providerMap, String key) { return MOCK_SUMMARY; } @Implementation protected static Pair getIconFromUri(Context context, String packageName, - String uriString, Map providerMap) { + Uri uri, Map providerMap) { return Pair.create(RuntimeEnvironment.application.getPackageName(), R.drawable.ic_settings_accent); } }