Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 710207f0 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Stop wrapping RoundedHomepageIcon if it's already wrapped." into pi-dev

parents dce675c1 4fdf0b46
Loading
Loading
Loading
Loading
+29 −30
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@ package com.android.settings.dashboard;

import android.app.Activity;
import android.content.Context;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
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.RecyclerView;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -316,7 +314,8 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
    @VisibleForTesting
    void onBindTile(DashboardItemHolder holder, Tile tile) {
        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);
            mCache.updateIcon(tile.icon, icon);
        }
+39 −14
Original line number Diff line number Diff line
@@ -16,8 +16,8 @@
package com.android.settings.dashboard;

import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
@@ -101,7 +101,8 @@ public class DashboardAdapterTest {
    public void testSuggestionDismissed_notOnlySuggestion_updateSuggestionOnly() {
        final DashboardAdapter adapter =
                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");
        adapter.setSuggestions(suggestions);

@@ -133,7 +134,8 @@ public class DashboardAdapterTest {
    public void testSuggestionDismissed_onlySuggestion_updateDashboardData() {
        DashboardAdapter adapter =
                spy(new DashboardAdapter(mContext, null /* savedInstanceState */,
                null /* conditions */, null /* suggestionControllerMixin */, null /* lifecycle */));
                        null /* conditions */, null /* suggestionControllerMixin */,
                        null /* lifecycle */));
        final List<Suggestion> suggestions = makeSuggestionsV2("pkg1");
        adapter.setSuggestions(suggestions);
        final DashboardData dashboardData = adapter.mDashboardData;
@@ -190,7 +192,7 @@ public class DashboardAdapterTest {
    }

    @Test
    public void onBindTile_externalTile_shouldNotUseGenericBackgroundIcon() {
    public void onBindTile_externalTile_shouldUpdateIcon() {
        final Context context = RuntimeEnvironment.application;
        final View view = LayoutInflater.from(context).inflate(R.layout.dashboard_tile, null);
        final DashboardAdapter.DashboardItemHolder holder =
@@ -205,11 +207,34 @@ public class DashboardAdapterTest {
        mDashboardAdapter = new DashboardAdapter(context, null /* savedInstanceState */,
                null /* conditions */, null /* suggestionControllerMixin */, null /* lifecycle */);
        ReflectionHelpers.setField(mDashboardAdapter, "mCache", iconCache);

        mDashboardAdapter.onBindTile(holder, tile);

        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) {
        final List<Suggestion> suggestions = new ArrayList<>();
        for (String pkgName : pkgNames) {