Merge "Stop wrapping RoundedHomepageIcon if it's already wrapped." into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
710207f024
@@ -17,7 +17,6 @@ package com.android.settings.dashboard;
|
|||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Typeface;
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -27,7 +26,6 @@ import android.support.v7.util.DiffUtil;
|
|||||||
import android.support.v7.widget.LinearLayoutManager;
|
import android.support.v7.widget.LinearLayoutManager;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.ArrayMap;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -316,7 +314,8 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void onBindTile(DashboardItemHolder holder, Tile tile) {
|
void onBindTile(DashboardItemHolder holder, Tile tile) {
|
||||||
Drawable icon = mCache.getIcon(tile.icon);
|
Drawable icon = mCache.getIcon(tile.icon);
|
||||||
if (!TextUtils.equals(tile.icon.getResPackage(), mContext.getPackageName())) {
|
if (!TextUtils.equals(tile.icon.getResPackage(), mContext.getPackageName())
|
||||||
|
&& !(icon instanceof RoundedHomepageIcon)) {
|
||||||
icon = new RoundedHomepageIcon(mContext, icon);
|
icon = new RoundedHomepageIcon(mContext, icon);
|
||||||
mCache.updateIcon(tile.icon, icon);
|
mCache.updateIcon(tile.icon, icon);
|
||||||
}
|
}
|
||||||
|
@@ -16,8 +16,8 @@
|
|||||||
package com.android.settings.dashboard;
|
package com.android.settings.dashboard;
|
||||||
|
|
||||||
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.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.any;
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.reset;
|
import static org.mockito.Mockito.reset;
|
||||||
@@ -101,7 +101,8 @@ public class DashboardAdapterTest {
|
|||||||
public void testSuggestionDismissed_notOnlySuggestion_updateSuggestionOnly() {
|
public void testSuggestionDismissed_notOnlySuggestion_updateSuggestionOnly() {
|
||||||
final DashboardAdapter adapter =
|
final DashboardAdapter adapter =
|
||||||
spy(new DashboardAdapter(mContext, null /* savedInstanceState */,
|
spy(new DashboardAdapter(mContext, null /* savedInstanceState */,
|
||||||
null /* conditions */, null /* suggestionControllerMixin */, null /* lifecycle */));
|
null /* conditions */, null /* suggestionControllerMixin */,
|
||||||
|
null /* lifecycle */));
|
||||||
final List<Suggestion> suggestions = makeSuggestionsV2("pkg1", "pkg2", "pkg3");
|
final List<Suggestion> suggestions = makeSuggestionsV2("pkg1", "pkg2", "pkg3");
|
||||||
adapter.setSuggestions(suggestions);
|
adapter.setSuggestions(suggestions);
|
||||||
|
|
||||||
@@ -133,7 +134,8 @@ public class DashboardAdapterTest {
|
|||||||
public void testSuggestionDismissed_onlySuggestion_updateDashboardData() {
|
public void testSuggestionDismissed_onlySuggestion_updateDashboardData() {
|
||||||
DashboardAdapter adapter =
|
DashboardAdapter adapter =
|
||||||
spy(new DashboardAdapter(mContext, null /* savedInstanceState */,
|
spy(new DashboardAdapter(mContext, null /* savedInstanceState */,
|
||||||
null /* conditions */, null /* suggestionControllerMixin */, null /* lifecycle */));
|
null /* conditions */, null /* suggestionControllerMixin */,
|
||||||
|
null /* lifecycle */));
|
||||||
final List<Suggestion> suggestions = makeSuggestionsV2("pkg1");
|
final List<Suggestion> suggestions = makeSuggestionsV2("pkg1");
|
||||||
adapter.setSuggestions(suggestions);
|
adapter.setSuggestions(suggestions);
|
||||||
final DashboardData dashboardData = adapter.mDashboardData;
|
final DashboardData dashboardData = adapter.mDashboardData;
|
||||||
@@ -190,7 +192,7 @@ public class DashboardAdapterTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onBindTile_externalTile_shouldNotUseGenericBackgroundIcon() {
|
public void onBindTile_externalTile_shouldUpdateIcon() {
|
||||||
final Context context = RuntimeEnvironment.application;
|
final Context context = RuntimeEnvironment.application;
|
||||||
final View view = LayoutInflater.from(context).inflate(R.layout.dashboard_tile, null);
|
final View view = LayoutInflater.from(context).inflate(R.layout.dashboard_tile, null);
|
||||||
final DashboardAdapter.DashboardItemHolder holder =
|
final DashboardAdapter.DashboardItemHolder holder =
|
||||||
@@ -205,11 +207,34 @@ public class DashboardAdapterTest {
|
|||||||
mDashboardAdapter = new DashboardAdapter(context, null /* savedInstanceState */,
|
mDashboardAdapter = new DashboardAdapter(context, null /* savedInstanceState */,
|
||||||
null /* conditions */, null /* suggestionControllerMixin */, null /* lifecycle */);
|
null /* conditions */, null /* suggestionControllerMixin */, null /* lifecycle */);
|
||||||
ReflectionHelpers.setField(mDashboardAdapter, "mCache", iconCache);
|
ReflectionHelpers.setField(mDashboardAdapter, "mCache", iconCache);
|
||||||
|
|
||||||
mDashboardAdapter.onBindTile(holder, tile);
|
mDashboardAdapter.onBindTile(holder, tile);
|
||||||
|
|
||||||
verify(iconCache).updateIcon(eq(tile.icon), any(RoundedHomepageIcon.class));
|
verify(iconCache).updateIcon(eq(tile.icon), any(RoundedHomepageIcon.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onBindTile_externalTile_usingRoundedHomepageIcon_shouldNotUpdateIcon() {
|
||||||
|
final Context context = RuntimeEnvironment.application;
|
||||||
|
final View view = LayoutInflater.from(context).inflate(R.layout.dashboard_tile, null);
|
||||||
|
final DashboardAdapter.DashboardItemHolder holder =
|
||||||
|
new DashboardAdapter.DashboardItemHolder(view);
|
||||||
|
final Tile tile = new Tile();
|
||||||
|
tile.icon = mock(Icon.class);
|
||||||
|
when(tile.icon.getResPackage()).thenReturn("another.package");
|
||||||
|
|
||||||
|
final IconCache iconCache = mock(IconCache.class);
|
||||||
|
when(iconCache.getIcon(tile.icon)).thenReturn(mock(RoundedHomepageIcon.class));
|
||||||
|
|
||||||
|
mDashboardAdapter = new DashboardAdapter(context, null /* savedInstanceState */,
|
||||||
|
null /* conditions */, null /* suggestionControllerMixin */, null /* lifecycle */);
|
||||||
|
ReflectionHelpers.setField(mDashboardAdapter, "mCache", iconCache);
|
||||||
|
|
||||||
|
mDashboardAdapter.onBindTile(holder, tile);
|
||||||
|
|
||||||
|
verify(iconCache, never()).updateIcon(eq(tile.icon), any(RoundedHomepageIcon.class));
|
||||||
|
}
|
||||||
|
|
||||||
private List<Suggestion> makeSuggestionsV2(String... pkgNames) {
|
private List<Suggestion> makeSuggestionsV2(String... pkgNames) {
|
||||||
final List<Suggestion> suggestions = new ArrayList<>();
|
final List<Suggestion> suggestions = new ArrayList<>();
|
||||||
for (String pkgName : pkgNames) {
|
for (String pkgName : pkgNames) {
|
||||||
|
Reference in New Issue
Block a user