Fix layout height for suggestion tile.
- set minHeight instead of using a fix height, so that when the font/display size is set to larger, the height will expand accordingly to fit all elements in the suggestion card. - revert the change that tint all suggestion icons. The previous logic should be used to determine if we should tint the icon or not. Change-Id: I2451490130cee216ff65301a600eb91d2e65c321 Fixes: 74261827 Test: visual and make RunSettingsRoboTests
This commit is contained in:
@@ -29,7 +29,8 @@
|
|||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="112dp"
|
android:layout_height="wrap_content"
|
||||||
|
android:minHeight="112dp"
|
||||||
android:paddingBottom="8dp"
|
android:paddingBottom="8dp"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
@@ -29,7 +29,8 @@
|
|||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="160dp"
|
android:layout_height="wrap_content"
|
||||||
|
android:minHeight="160dp"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
|
@@ -119,7 +119,7 @@ public class SuggestionAdapter extends RecyclerView.Adapter<DashboardItemHolder>
|
|||||||
}
|
}
|
||||||
final Icon icon = suggestion.getIcon();
|
final Icon icon = suggestion.getIcon();
|
||||||
final Drawable drawable = mCache.getIcon(icon);
|
final Drawable drawable = mCache.getIcon(icon);
|
||||||
if (drawable != null) {
|
if (drawable != null && (suggestion.getFlags() & Suggestion.FLAG_ICON_TINTABLE) != 0) {
|
||||||
drawable.setTint(Utils.getColorAccent(mContext));
|
drawable.setTint(Utils.getColorAccent(mContext));
|
||||||
}
|
}
|
||||||
holder.icon.setImageDrawable(drawable);
|
holder.icon.setImageDrawable(drawable);
|
||||||
|
@@ -231,12 +231,40 @@ public class SuggestionAdapterTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onBindViewHolder_shouldTintIcon() throws PendingIntent.CanceledException {
|
public void onBindViewHolder_iconNotTintable_shouldNotTintIcon()
|
||||||
|
throws PendingIntent.CanceledException {
|
||||||
|
final Icon icon = mock(Icon.class);
|
||||||
|
final Suggestion suggestion = new Suggestion.Builder("pkg1")
|
||||||
|
.setPendingIntent(mock(PendingIntent.class))
|
||||||
|
.setIcon(icon)
|
||||||
|
.build();
|
||||||
|
final List<Suggestion> suggestions = new ArrayList<>();
|
||||||
|
suggestions.add(suggestion);
|
||||||
|
mSuggestionAdapter = new SuggestionAdapter(mActivity, mSuggestionControllerMixin,
|
||||||
|
null /* savedInstanceState */, null /* callback */, null /* lifecycle */);
|
||||||
|
mSuggestionAdapter.setSuggestions(suggestions);
|
||||||
|
mSuggestionHolder = mSuggestionAdapter.onCreateViewHolder(
|
||||||
|
new FrameLayout(RuntimeEnvironment.application),
|
||||||
|
mSuggestionAdapter.getItemViewType(0));
|
||||||
|
IconCache cache = mock(IconCache.class);
|
||||||
|
final Drawable drawable = mock(Drawable.class);
|
||||||
|
when(cache.getIcon(icon)).thenReturn(drawable);
|
||||||
|
ReflectionHelpers.setField(mSuggestionAdapter, "mCache", cache);
|
||||||
|
|
||||||
|
mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
|
||||||
|
|
||||||
|
verify(drawable, never()).setTint(anyInt());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onBindViewHolder_iconTintable_shouldTintIcon()
|
||||||
|
throws PendingIntent.CanceledException {
|
||||||
final Icon icon = mock(Icon.class);
|
final Icon icon = mock(Icon.class);
|
||||||
final int FLAG_ICON_TINTABLE = 1 << 1;
|
final int FLAG_ICON_TINTABLE = 1 << 1;
|
||||||
final Suggestion suggestion = new Suggestion.Builder("pkg1")
|
final Suggestion suggestion = new Suggestion.Builder("pkg1")
|
||||||
.setPendingIntent(mock(PendingIntent.class))
|
.setPendingIntent(mock(PendingIntent.class))
|
||||||
.setIcon(icon)
|
.setIcon(icon)
|
||||||
|
.setFlags(FLAG_ICON_TINTABLE)
|
||||||
.build();
|
.build();
|
||||||
final List<Suggestion> suggestions = new ArrayList<>();
|
final List<Suggestion> suggestions = new ArrayList<>();
|
||||||
suggestions.add(suggestion);
|
suggestions.add(suggestion);
|
||||||
|
Reference in New Issue
Block a user