Merge changes from topics "remove_tile_summary_cache", "remove_tile_title"
* changes: Use getSummary() to get tile summary text. Use tile.getTitle(context) to get tile title.
This commit is contained in:
committed by
Android (Google) Code Review
commit
7e5ed0540f
@@ -355,9 +355,10 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
|||||||
mCache.updateIcon(tileIcon, icon);
|
mCache.updateIcon(tileIcon, icon);
|
||||||
}
|
}
|
||||||
holder.icon.setImageDrawable(icon);
|
holder.icon.setImageDrawable(icon);
|
||||||
holder.title.setText(tile.title);
|
holder.title.setText(tile.getTitle(mContext));
|
||||||
if (!TextUtils.isEmpty(tile.summary)) {
|
final CharSequence summary = tile.getSummary(mContext);
|
||||||
holder.summary.setText(tile.summary);
|
if (!TextUtils.isEmpty(summary)) {
|
||||||
|
holder.summary.setText(summary);
|
||||||
holder.summary.setVisibility(View.VISIBLE);
|
holder.summary.setVisibility(View.VISIBLE);
|
||||||
} else {
|
} else {
|
||||||
holder.summary.setVisibility(View.GONE);
|
holder.summary.setVisibility(View.GONE);
|
||||||
|
@@ -33,7 +33,6 @@ import java.lang.annotation.Retention;
|
|||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description about data list used in the DashboardAdapter. In the data list each item can be
|
* Description about data list used in the DashboardAdapter. In the data list each item can be
|
||||||
@@ -147,7 +146,7 @@ public class DashboardData {
|
|||||||
* Find the position of the Tile object.
|
* Find the position of the Tile object.
|
||||||
* <p>
|
* <p>
|
||||||
* First, try to find the exact identical instance of the tile object, if not found,
|
* First, try to find the exact identical instance of the tile object, if not found,
|
||||||
* then try to find a tile has the same title.
|
* then try to find a tile has the same id.
|
||||||
*
|
*
|
||||||
* @param tile tile that need to be found
|
* @param tile tile that need to be found
|
||||||
* @return position of the object, return INDEX_NOT_FOUND if object isn't in the list
|
* @return position of the object, return INDEX_NOT_FOUND if object isn't in the list
|
||||||
@@ -158,7 +157,7 @@ public class DashboardData {
|
|||||||
final Object entity = mItems.get(i).entity;
|
final Object entity = mItems.get(i).entity;
|
||||||
if (entity == tile) {
|
if (entity == tile) {
|
||||||
return i;
|
return i;
|
||||||
} else if (entity instanceof Tile && tile.title.equals(((Tile) entity).title)) {
|
} else if (entity instanceof Tile && tile.getId() == ((Tile) entity).getId()) {
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -227,7 +226,7 @@ public class DashboardData {
|
|||||||
final List<Tile> tiles = mCategory.getTiles();
|
final List<Tile> tiles = mCategory.getTiles();
|
||||||
for (int i = 0; i < tiles.size(); i++) {
|
for (int i = 0; i < tiles.size(); i++) {
|
||||||
final Tile tile = tiles.get(i);
|
final Tile tile = tiles.get(i);
|
||||||
addToItemList(tile, R.layout.dashboard_tile, Objects.hash(tile.title),
|
addToItemList(tile, R.layout.dashboard_tile, tile.getId(),
|
||||||
true /* add */);
|
true /* add */);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -425,9 +424,11 @@ public class DashboardData {
|
|||||||
final Tile localTile = (Tile) entity;
|
final Tile localTile = (Tile) entity;
|
||||||
final Tile targetTile = (Tile) targetItem.entity;
|
final Tile targetTile = (Tile) targetItem.entity;
|
||||||
|
|
||||||
// Only check title and summary for dashboard tile
|
// Only check id and summary for dashboard tile
|
||||||
return TextUtils.equals(localTile.title, targetTile.title)
|
return localTile.getId() == targetTile.getId()
|
||||||
&& TextUtils.equals(localTile.summary, targetTile.summary);
|
&& TextUtils.equals(
|
||||||
|
localTile.getSummaryReference(),
|
||||||
|
targetTile.getSummaryReference());
|
||||||
case TYPE_SUGGESTION_CONTAINER:
|
case TYPE_SUGGESTION_CONTAINER:
|
||||||
case TYPE_CONDITION_CONTAINER:
|
case TYPE_CONDITION_CONTAINER:
|
||||||
// Fall through to default
|
// Fall through to default
|
||||||
|
@@ -106,7 +106,7 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
|||||||
if (pref == null) {
|
if (pref == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pref.setTitle(tile.title);
|
pref.setTitle(tile.getTitle(activity.getApplicationContext()));
|
||||||
if (!TextUtils.isEmpty(key)) {
|
if (!TextUtils.isEmpty(key)) {
|
||||||
pref.setKey(key);
|
pref.setKey(key);
|
||||||
} else {
|
} else {
|
||||||
@@ -172,8 +172,9 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void bindSummary(Preference preference, Tile tile) {
|
private void bindSummary(Preference preference, Tile tile) {
|
||||||
if (tile.summary != null) {
|
final CharSequence summary = tile.getSummary(mContext);
|
||||||
preference.setSummary(tile.summary);
|
if (summary != null) {
|
||||||
|
preference.setSummary(summary);
|
||||||
} else if (tile.getMetaData() != null
|
} else if (tile.getMetaData() != null
|
||||||
&& tile.getMetaData().containsKey(META_DATA_PREFERENCE_SUMMARY_URI)) {
|
&& tile.getMetaData().containsKey(META_DATA_PREFERENCE_SUMMARY_URI)) {
|
||||||
// Set a placeholder summary before starting to fetch real summary, this is necessary
|
// Set a placeholder summary before starting to fetch real summary, this is necessary
|
||||||
@@ -183,9 +184,9 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
|||||||
ThreadUtils.postOnBackgroundThread(() -> {
|
ThreadUtils.postOnBackgroundThread(() -> {
|
||||||
final Map<String, IContentProvider> providerMap = new ArrayMap<>();
|
final Map<String, IContentProvider> providerMap = new ArrayMap<>();
|
||||||
final String uri = tile.getMetaData().getString(META_DATA_PREFERENCE_SUMMARY_URI);
|
final String uri = tile.getMetaData().getString(META_DATA_PREFERENCE_SUMMARY_URI);
|
||||||
final String summary = TileUtils.getTextFromUri(
|
final String summaryFromUri = TileUtils.getTextFromUri(
|
||||||
mContext, uri, providerMap, META_DATA_PREFERENCE_SUMMARY);
|
mContext, uri, providerMap, META_DATA_PREFERENCE_SUMMARY);
|
||||||
ThreadUtils.postOnMainThread(() -> preference.setSummary(summary));
|
ThreadUtils.postOnMainThread(() -> preference.setSummary(summaryFromUri));
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
preference.setSummary(R.string.summary_placeholder);
|
preference.setSummary(R.string.summary_placeholder);
|
||||||
|
@@ -156,12 +156,12 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
|||||||
final String key = mDashboardFeatureProvider.getDashboardKeyForTile(tile);
|
final String key = mDashboardFeatureProvider.getDashboardKeyForTile(tile);
|
||||||
final Preference pref = getPreferenceScreen().findPreference(key);
|
final Preference pref = getPreferenceScreen().findPreference(key);
|
||||||
if (pref == null) {
|
if (pref == null) {
|
||||||
Log.d(getLogTag(),
|
Log.d(getLogTag(), String.format(
|
||||||
String.format("Can't find pref by key %s, skipping update summary %s/%s",
|
"Can't find pref by key %s, skipping update summary %s",
|
||||||
key, tile.title, tile.summary));
|
key, tile.getDescription()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pref.setSummary(tile.summary);
|
pref.setSummary(tile.getSummary(pref.getContext()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -18,6 +18,7 @@ package com.android.settings.dashboard;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -96,29 +97,30 @@ public class SummaryLoader {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "setSummary " + tile.title + " - " + summary);
|
Log.d(TAG, "setSummary " + tile.getDescription() + " - " + summary);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSummaryIfNeeded(tile, summary);
|
updateSummaryIfNeeded(mActivity.getApplicationContext(), tile, summary);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void updateSummaryIfNeeded(Tile tile, CharSequence summary) {
|
void updateSummaryIfNeeded(Context context, Tile tile, CharSequence summary) {
|
||||||
if (TextUtils.equals(tile.summary, summary)) {
|
if (TextUtils.equals(tile.getSummary(context), summary)) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "Summary doesn't change, skipping summary update for " + tile.title);
|
Log.d(TAG, "Summary doesn't change, skipping summary update for "
|
||||||
|
+ tile.getDescription());
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mSummaryTextMap.put(mDashboardFeatureProvider.getDashboardKeyForTile(tile), summary);
|
mSummaryTextMap.put(mDashboardFeatureProvider.getDashboardKeyForTile(tile), summary);
|
||||||
tile.summary = summary;
|
tile.overrideSummary(summary);
|
||||||
if (mSummaryConsumer != null) {
|
if (mSummaryConsumer != null) {
|
||||||
mSummaryConsumer.notifySummaryChanged(tile);
|
mSummaryConsumer.notifySummaryChanged(tile);
|
||||||
} else {
|
} else {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "SummaryConsumer is null, skipping summary update for "
|
Log.d(TAG, "SummaryConsumer is null, skipping summary update for "
|
||||||
+ tile.title);
|
+ tile.getDescription());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -215,7 +217,7 @@ public class SummaryLoader {
|
|||||||
for (Tile tile : category.getTiles()) {
|
for (Tile tile : category.getTiles()) {
|
||||||
final String key = mDashboardFeatureProvider.getDashboardKeyForTile(tile);
|
final String key = mDashboardFeatureProvider.getDashboardKeyForTile(tile);
|
||||||
if (mSummaryTextMap.containsKey(key)) {
|
if (mSummaryTextMap.containsKey(key)) {
|
||||||
tile.summary = mSummaryTextMap.get(key);
|
tile.overrideSummary(mSummaryTextMap.get(key));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
package com.android.settings.accounts;
|
package com.android.settings.accounts;
|
||||||
|
|
||||||
import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_KEYHINT;
|
import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_KEYHINT;
|
||||||
|
import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_TITLE;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
@@ -65,7 +66,7 @@ public class AccountDetailDashboardFragmentTest {
|
|||||||
public void setUp() {
|
public void setUp() {
|
||||||
mContext = RuntimeEnvironment.application;
|
mContext = RuntimeEnvironment.application;
|
||||||
mActivityInfo = new ActivityInfo();
|
mActivityInfo = new ActivityInfo();
|
||||||
mActivityInfo.packageName = "pkg";
|
mActivityInfo.packageName = mContext.getPackageName();
|
||||||
mActivityInfo.name = "clazz";
|
mActivityInfo.name = "clazz";
|
||||||
mActivityInfo.metaData = new Bundle();
|
mActivityInfo.metaData = new Bundle();
|
||||||
|
|
||||||
@@ -123,6 +124,7 @@ public class AccountDetailDashboardFragmentTest {
|
|||||||
mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
|
mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
|
||||||
mActivityInfo.metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT);
|
mActivityInfo.metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT);
|
||||||
mActivityInfo.metaData.putString(METADATA_ACCOUNT_TYPE, "com.abc");
|
mActivityInfo.metaData.putString(METADATA_ACCOUNT_TYPE, "com.abc");
|
||||||
|
mActivityInfo.metaData.putString(META_DATA_PREFERENCE_TITLE, "summary");
|
||||||
mActivityInfo.metaData.putString("com.android.settings.intent.action",
|
mActivityInfo.metaData.putString("com.android.settings.intent.action",
|
||||||
Intent.ACTION_ASSIST);
|
Intent.ACTION_ASSIST);
|
||||||
tile.userHandle = null;
|
tile.userHandle = null;
|
||||||
|
@@ -15,6 +15,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.settings.dashboard;
|
package com.android.settings.dashboard;
|
||||||
|
|
||||||
|
import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_TITLE;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
@@ -95,6 +97,7 @@ public class DashboardAdapterTest {
|
|||||||
mActivityInfo.packageName = "pkg";
|
mActivityInfo.packageName = "pkg";
|
||||||
mActivityInfo.name = "class";
|
mActivityInfo.name = "class";
|
||||||
mActivityInfo.metaData = new Bundle();
|
mActivityInfo.metaData = new Bundle();
|
||||||
|
mActivityInfo.metaData.putString(META_DATA_PREFERENCE_TITLE, "test-title");
|
||||||
|
|
||||||
when(mContext.getSystemService(Context.WINDOW_SERVICE)).thenReturn(mWindowManager);
|
when(mContext.getSystemService(Context.WINDOW_SERVICE)).thenReturn(mWindowManager);
|
||||||
when(mContext.getResources()).thenReturn(mResources);
|
when(mContext.getResources()).thenReturn(mResources);
|
||||||
|
@@ -49,13 +49,12 @@ import org.mockito.MockitoAnnotations;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
@RunWith(SettingsRobolectricTestRunner.class)
|
@RunWith(SettingsRobolectricTestRunner.class)
|
||||||
public class DashboardDataTest {
|
public class DashboardDataTest {
|
||||||
|
|
||||||
private static final String TEST_SUGGESTION_TITLE = "Use fingerprint";
|
private static final String TEST_SUGGESTION_TITLE = "Use fingerprint";
|
||||||
private static final String TEST_CATEGORY_TILE_TITLE = "Display";
|
private static final int TEST_TILE_ID = 12345;
|
||||||
|
|
||||||
private DashboardData mDashboardDataWithOneConditions;
|
private DashboardData mDashboardDataWithOneConditions;
|
||||||
private DashboardData mDashboardDataWithTwoConditions;
|
private DashboardData mDashboardDataWithTwoConditions;
|
||||||
@@ -95,7 +94,7 @@ public class DashboardDataTest {
|
|||||||
twoItemsConditions.add(mSecondCondition);
|
twoItemsConditions.add(mSecondCondition);
|
||||||
|
|
||||||
// Build category
|
// Build category
|
||||||
mTestCategoryTile.title = TEST_CATEGORY_TILE_TITLE;
|
when(mTestCategoryTile.getId()).thenReturn(TEST_TILE_ID);
|
||||||
|
|
||||||
mDashboardCategory.addTile(mTestCategoryTile);
|
mDashboardCategory.addTile(mTestCategoryTile);
|
||||||
|
|
||||||
@@ -132,7 +131,7 @@ public class DashboardDataTest {
|
|||||||
assertThat(items.get(1).id).isEqualTo(STABLE_ID_SUGGESTION_CONDITION_DIVIDER);
|
assertThat(items.get(1).id).isEqualTo(STABLE_ID_SUGGESTION_CONDITION_DIVIDER);
|
||||||
assertThat(items.get(2).id).isEqualTo(STABLE_ID_CONDITION_CONTAINER);
|
assertThat(items.get(2).id).isEqualTo(STABLE_ID_CONDITION_CONTAINER);
|
||||||
assertThat(items.get(3).id).isEqualTo(STABLE_ID_CONDITION_FOOTER);
|
assertThat(items.get(3).id).isEqualTo(STABLE_ID_CONDITION_FOOTER);
|
||||||
assertThat(items.get(4).id).isEqualTo(Objects.hash(mTestCategoryTile.title));
|
assertThat(items.get(4).id).isEqualTo(TEST_TILE_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -185,15 +184,17 @@ public class DashboardDataTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testGetPositionByTile_equalTitle_returnPositionFound() {
|
public void testGetPositionByTile_equalTitle_returnPositionFound() {
|
||||||
final Tile tile = mock(Tile.class);
|
final Tile tile = mock(Tile.class);
|
||||||
tile.title = TEST_CATEGORY_TILE_TITLE;
|
when(tile.getId()).thenReturn(TEST_TILE_ID);
|
||||||
|
|
||||||
final int position = mDashboardDataWithOneConditions.getPositionByTile(tile);
|
final int position = mDashboardDataWithOneConditions.getPositionByTile(tile);
|
||||||
|
|
||||||
assertThat(position).isNotEqualTo(DashboardData.POSITION_NOT_FOUND);
|
assertThat(position).isNotEqualTo(DashboardData.POSITION_NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetPositionByTile_notExisted_returnNotFound() {
|
public void testGetPositionByTile_notExisted_returnNotFound() {
|
||||||
final Tile tile = mock(Tile.class);
|
final Tile tile = mock(Tile.class);
|
||||||
tile.title = "";
|
when(tile.getId()).thenReturn(123);
|
||||||
final int position = mDashboardDataWithOneConditions.getPositionByTile(tile);
|
final int position = mDashboardDataWithOneConditions.getPositionByTile(tile);
|
||||||
assertThat(position).isEqualTo(DashboardData.POSITION_NOT_FOUND);
|
assertThat(position).isEqualTo(DashboardData.POSITION_NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
@@ -19,6 +19,8 @@ package com.android.settings.dashboard;
|
|||||||
import static com.android.settingslib.drawer.TileUtils.META_DATA_KEY_ORDER;
|
import static com.android.settingslib.drawer.TileUtils.META_DATA_KEY_ORDER;
|
||||||
import static com.android.settingslib.drawer.TileUtils.META_DATA_KEY_PROFILE;
|
import static com.android.settingslib.drawer.TileUtils.META_DATA_KEY_PROFILE;
|
||||||
import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_KEYHINT;
|
import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_KEYHINT;
|
||||||
|
import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_SUMMARY;
|
||||||
|
import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_TITLE;
|
||||||
import static com.android.settingslib.drawer.TileUtils.PROFILE_ALL;
|
import static com.android.settingslib.drawer.TileUtils.PROFILE_ALL;
|
||||||
import static com.android.settingslib.drawer.TileUtils.PROFILE_PRIMARY;
|
import static com.android.settingslib.drawer.TileUtils.PROFILE_PRIMARY;
|
||||||
|
|
||||||
@@ -99,11 +101,15 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mContext = spy(RuntimeEnvironment.application);
|
mContext = spy(RuntimeEnvironment.application);
|
||||||
|
doReturn(RuntimeEnvironment.application).when(mActivity).getApplicationContext();
|
||||||
mForceRoundedIcon = false;
|
mForceRoundedIcon = false;
|
||||||
mActivityInfo = new ActivityInfo();
|
mActivityInfo = new ActivityInfo();
|
||||||
mActivityInfo.packageName = "pkg";
|
mActivityInfo.packageName = mContext.getPackageName();
|
||||||
mActivityInfo.name = "class";
|
mActivityInfo.name = "class";
|
||||||
mActivityInfo.metaData = new Bundle();
|
mActivityInfo.metaData = new Bundle();
|
||||||
|
mActivityInfo.metaData.putInt(META_DATA_PREFERENCE_TITLE, R.string.settings_label);
|
||||||
|
mActivityInfo.metaData.putInt(META_DATA_PREFERENCE_SUMMARY,
|
||||||
|
R.string.about_settings_summary);
|
||||||
doReturn(mPackageManager).when(mContext).getPackageManager();
|
doReturn(mPackageManager).when(mContext).getPackageManager();
|
||||||
when(mPackageManager.resolveActivity(any(Intent.class), anyInt()))
|
when(mPackageManager.resolveActivity(any(Intent.class), anyInt()))
|
||||||
.thenReturn(new ResolveInfo());
|
.thenReturn(new ResolveInfo());
|
||||||
@@ -121,16 +127,15 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE));
|
final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE));
|
||||||
mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10);
|
mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10);
|
||||||
tile.title = "title";
|
|
||||||
tile.summary = "summary";
|
|
||||||
doReturn(Icon.createWithBitmap(Bitmap.createBitmap(1, 1, Bitmap.Config.RGB_565)))
|
doReturn(Icon.createWithBitmap(Bitmap.createBitmap(1, 1, Bitmap.Config.RGB_565)))
|
||||||
.when(tile).getIcon(any(Context.class));
|
.when(tile).getIcon(any(Context.class));
|
||||||
mActivityInfo.metaData.putString(SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS, "HI");
|
mActivityInfo.metaData.putString(SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS, "HI");
|
||||||
mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.SETTINGS_GESTURES,
|
mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.SETTINGS_GESTURES,
|
||||||
preference, tile, "123", Preference.DEFAULT_ORDER);
|
preference, tile, "123", Preference.DEFAULT_ORDER);
|
||||||
|
|
||||||
assertThat(preference.getTitle()).isEqualTo(tile.title);
|
assertThat(preference.getTitle()).isEqualTo(mContext.getText(R.string.settings_label));
|
||||||
assertThat(preference.getSummary()).isEqualTo(tile.summary);
|
assertThat(preference.getSummary())
|
||||||
|
.isEqualTo(mContext.getText(R.string.about_settings_summary));
|
||||||
assertThat(preference.getIcon()).isNotNull();
|
assertThat(preference.getIcon()).isNotNull();
|
||||||
assertThat(preference.getFragment()).isEqualTo(
|
assertThat(preference.getFragment()).isEqualTo(
|
||||||
mActivityInfo.metaData.getString(SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS));
|
mActivityInfo.metaData.getString(SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS));
|
||||||
@@ -159,9 +164,6 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
tile.userHandle.add(mock(UserHandle.class));
|
tile.userHandle.add(mock(UserHandle.class));
|
||||||
tile.userHandle.add(mock(UserHandle.class));
|
tile.userHandle.add(mock(UserHandle.class));
|
||||||
|
|
||||||
when(mActivity.getApplicationContext().getSystemService(Context.USER_SERVICE))
|
|
||||||
.thenReturn(mUserManager);
|
|
||||||
|
|
||||||
mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.SETTINGS_GESTURES,
|
mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.SETTINGS_GESTURES,
|
||||||
preference, tile, "123", Preference.DEFAULT_ORDER);
|
preference, tile, "123", Preference.DEFAULT_ORDER);
|
||||||
preference.getOnPreferenceClickListener().onPreferenceClick(null);
|
preference.getOnPreferenceClickListener().onPreferenceClick(null);
|
||||||
@@ -199,11 +201,6 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
tile.userHandle = new ArrayList<>();
|
tile.userHandle = new ArrayList<>();
|
||||||
tile.userHandle.add(mock(UserHandle.class));
|
tile.userHandle.add(mock(UserHandle.class));
|
||||||
|
|
||||||
when(mActivity.getSystemService(Context.USER_SERVICE))
|
|
||||||
.thenReturn(mUserManager);
|
|
||||||
when(mActivity.getApplicationContext().getPackageName())
|
|
||||||
.thenReturn(RuntimeEnvironment.application.getPackageName());
|
|
||||||
|
|
||||||
mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.SETTINGS_GESTURES,
|
mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.SETTINGS_GESTURES,
|
||||||
preference, tile, "123", Preference.DEFAULT_ORDER);
|
preference, tile, "123", Preference.DEFAULT_ORDER);
|
||||||
preference.getOnPreferenceClickListener().onPreferenceClick(null);
|
preference.getOnPreferenceClickListener().onPreferenceClick(null);
|
||||||
@@ -238,7 +235,10 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
@Test
|
@Test
|
||||||
public void bindPreference_noSummary_shouldSetSummaryToPlaceholder() {
|
public void bindPreference_noSummary_shouldSetSummaryToPlaceholder() {
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
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 Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
|
|
||||||
mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN,
|
mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN,
|
||||||
preference, tile, null /*key */, Preference.DEFAULT_ORDER);
|
preference, tile, null /*key */, Preference.DEFAULT_ORDER);
|
||||||
|
|
||||||
@@ -246,17 +246,6 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
.isEqualTo(RuntimeEnvironment.application.getString(R.string.summary_placeholder));
|
.isEqualTo(RuntimeEnvironment.application.getString(R.string.summary_placeholder));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void bindPreference_hasSummary_shouldSetSummary() {
|
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
|
||||||
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
|
||||||
tile.summary = "test";
|
|
||||||
mImpl.bindPreferenceToTile(mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN,
|
|
||||||
preference, tile, null /*key */, Preference.DEFAULT_ORDER);
|
|
||||||
|
|
||||||
assertThat(preference.getSummary()).isEqualTo(tile.summary);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Config(shadows = {ShadowTileUtils.class, ShadowThreadUtils.class})
|
@Config(shadows = {ShadowTileUtils.class, ShadowThreadUtils.class})
|
||||||
public void bindPreference_hasSummaryUri_shouldLoadSummaryFromContentProvider() {
|
public void bindPreference_hasSummaryUri_shouldLoadSummaryFromContentProvider() {
|
||||||
|
@@ -24,6 +24,7 @@ import static org.mockito.Mockito.verifyZeroInteractions;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.pm.ActivityInfo;
|
import android.content.pm.ActivityInfo;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
@@ -46,6 +47,7 @@ public class SummaryLoaderTest {
|
|||||||
private static final String SUMMARY_1 = "summary1";
|
private static final String SUMMARY_1 = "summary1";
|
||||||
private static final String SUMMARY_2 = "summary2";
|
private static final String SUMMARY_2 = "summary2";
|
||||||
|
|
||||||
|
private Context mContext;
|
||||||
private SummaryLoader mSummaryLoader;
|
private SummaryLoader mSummaryLoader;
|
||||||
private boolean mCallbackInvoked;
|
private boolean mCallbackInvoked;
|
||||||
private Tile mTile;
|
private Tile mTile;
|
||||||
@@ -54,12 +56,13 @@ public class SummaryLoaderTest {
|
|||||||
@Before
|
@Before
|
||||||
public void SetUp() {
|
public void SetUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
|
mContext = RuntimeEnvironment.application;
|
||||||
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
||||||
final ActivityInfo activityInfo = new ActivityInfo();
|
final ActivityInfo activityInfo = new ActivityInfo();
|
||||||
activityInfo.packageName = "pkg";
|
activityInfo.packageName = "pkg";
|
||||||
activityInfo.name = "class";
|
activityInfo.name = "class";
|
||||||
mTile = new Tile(activityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
mTile = new Tile(activityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
mTile.summary = SUMMARY_1;
|
mTile.overrideSummary(SUMMARY_1);
|
||||||
mCallbackInvoked = false;
|
mCallbackInvoked = false;
|
||||||
|
|
||||||
final Activity activity = Robolectric.buildActivity(Activity.class).get();
|
final Activity activity = Robolectric.buildActivity(Activity.class).get();
|
||||||
@@ -75,14 +78,14 @@ public class SummaryLoaderTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateSummaryIfNeeded_SummaryIdentical_NoCallback() {
|
public void testUpdateSummaryIfNeeded_SummaryIdentical_NoCallback() {
|
||||||
mSummaryLoader.updateSummaryIfNeeded(mTile, SUMMARY_1);
|
mSummaryLoader.updateSummaryIfNeeded(mContext, mTile, SUMMARY_1);
|
||||||
|
|
||||||
assertThat(mCallbackInvoked).isFalse();
|
assertThat(mCallbackInvoked).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateSummaryIfNeeded_SummaryChanged_HasCallback() {
|
public void testUpdateSummaryIfNeeded_SummaryChanged_HasCallback() {
|
||||||
mSummaryLoader.updateSummaryIfNeeded(mTile, SUMMARY_2);
|
mSummaryLoader.updateSummaryIfNeeded(mContext, mTile, SUMMARY_2);
|
||||||
|
|
||||||
assertThat(mCallbackInvoked).isTrue();
|
assertThat(mCallbackInvoked).isTrue();
|
||||||
}
|
}
|
||||||
@@ -102,10 +105,10 @@ public class SummaryLoaderTest {
|
|||||||
when(mFeatureFactory.dashboardFeatureProvider.getDashboardKeyForTile(tile))
|
when(mFeatureFactory.dashboardFeatureProvider.getDashboardKeyForTile(tile))
|
||||||
.thenReturn(tile.getKey(RuntimeEnvironment.application));
|
.thenReturn(tile.getKey(RuntimeEnvironment.application));
|
||||||
|
|
||||||
mSummaryLoader.updateSummaryIfNeeded(tile, testSummary);
|
mSummaryLoader.updateSummaryIfNeeded(mContext, tile, testSummary);
|
||||||
tile.summary = null;
|
tile.overrideSummary(null);
|
||||||
mSummaryLoader.updateSummaryToCache(category);
|
mSummaryLoader.updateSummaryToCache(category);
|
||||||
|
|
||||||
assertThat(tile.summary).isEqualTo(testSummary);
|
assertThat(tile.getSummary(mContext)).isEqualTo(testSummary);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user