diff --git a/res/layout/suggestion_container.xml b/res/layout/suggestion_container.xml index 9110c580563..640a91f29d4 100644 --- a/res/layout/suggestion_container.xml +++ b/res/layout/suggestion_container.xml @@ -55,7 +55,7 @@ android:id="@+id/suggestion_list" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingTop="18dp" + android:paddingTop="14dp" android:paddingBottom="16dp" android:scrollbars="none"/> diff --git a/res/layout/suggestion_tile_v2.xml b/res/layout/suggestion_tile_v2.xml index e04febb9ed0..a7717b74cb3 100644 --- a/res/layout/suggestion_tile_v2.xml +++ b/res/layout/suggestion_tile_v2.xml @@ -18,7 +18,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/suggestion_card" - android:layout_width="328dp" + android:layout_width="wrap_content" android:layout_height="wrap_content" app:cardPreventCornerOverlap="false" app:cardUseCompatPadding="true" @@ -65,7 +65,7 @@ android:layout_marginEnd="12dp" android:singleLine="true" android:textAppearance="@style/TextAppearance.SuggestionTitleV2" - android:ellipsize="marquee" + android:ellipsize="end" android:fadingEdge="horizontal" /> @@ -37,16 +38,17 @@ 56dp - 380dp - 184dp - 176dp + 384dp + 188dp + 180dp 22dp diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 332deea247f..f9ab8215220 100755 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -304,9 +304,9 @@ 24dp - 328dp - 158dp - 152dp + 332dp + 162dp + 156dp 16dp 12dp 16dp diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionAdapterV2.java b/src/com/android/settings/dashboard/suggestions/SuggestionAdapterV2.java index 483af924f72..c027f85caeb 100644 --- a/src/com/android/settings/dashboard/suggestions/SuggestionAdapterV2.java +++ b/src/com/android/settings/dashboard/suggestions/SuggestionAdapterV2.java @@ -18,6 +18,8 @@ package com.android.settings.dashboard.suggestions; import android.app.PendingIntent; import android.content.Context; import android.content.res.Resources; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.Icon; import android.os.Bundle; import android.service.settings.suggestions.Suggestion; import android.support.v7.widget.RecyclerView; @@ -34,6 +36,7 @@ import com.android.settings.R; import com.android.settings.dashboard.DashboardAdapterV2.DashboardItemHolder; import com.android.settings.dashboard.DashboardAdapterV2.IconCache; import com.android.settings.overlay.FeatureFactory; +import com.android.settingslib.Utils; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; @@ -109,7 +112,12 @@ public class SuggestionAdapterV2 extends RecyclerView.Adapter suggestions = new ArrayList<>(); + suggestions.add(suggestion); + mSuggestionAdapter = new SuggestionAdapterV2(mActivity, mSuggestionControllerMixin, + null /* savedInstanceState */, null /* callback */, null /* lifecycle */); + mSuggestionAdapter.setSuggestions(suggestions); + mSuggestionHolder = mSuggestionAdapter.onCreateViewHolder( + new FrameLayout(RuntimeEnvironment.application), + mSuggestionAdapter.getItemViewType(0)); + DashboardAdapterV2.IconCache cache = mock(DashboardAdapterV2.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_samePackage_shouldTintIcon() + throws PendingIntent.CanceledException { + final Icon icon = mock(Icon.class); + final String packageName = "pkg1"; + when(icon.getResPackage()).thenReturn(packageName); + when(mActivity.getPackageName()).thenReturn(packageName); + final Suggestion suggestion = new Suggestion.Builder(packageName) + .setPendingIntent(mock(PendingIntent.class)) + .setIcon(icon) + .build(); + final List suggestions = new ArrayList<>(); + suggestions.add(suggestion); + mSuggestionAdapter = new SuggestionAdapterV2(mActivity, mSuggestionControllerMixin, + null /* savedInstanceState */, null /* callback */, null /* lifecycle */); + mSuggestionAdapter.setSuggestions(suggestions); + mSuggestionHolder = mSuggestionAdapter.onCreateViewHolder( + new FrameLayout(RuntimeEnvironment.application), + mSuggestionAdapter.getItemViewType(0)); + DashboardAdapterV2.IconCache cache = mock(DashboardAdapterV2.IconCache.class); + final Drawable drawable = mock(Drawable.class); + when(cache.getIcon(icon)).thenReturn(drawable); + ReflectionHelpers.setField(mSuggestionAdapter, "mCache", cache); + TypedArray typedArray = mock(TypedArray.class); + final int colorAccent = 1234; + when(mActivity.obtainStyledAttributes(any())).thenReturn(typedArray); + when(typedArray.getColor(anyInt(), anyInt())).thenReturn(colorAccent); + + mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0); + + verify(drawable).setTint(colorAccent); + } + private void setupSuggestions(Context context, List suggestions) { mSuggestionAdapter = new SuggestionAdapterV2(context, mSuggestionControllerMixin, null /* savedInstanceState */, null /* callback */, null /* lifecycle */);