Merge "Move IconCache to SettingsLib(II)."
This commit is contained in:
@@ -51,6 +51,7 @@ import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
|
|||||||
import com.android.settingslib.drawer.DashboardCategory;
|
import com.android.settingslib.drawer.DashboardCategory;
|
||||||
import com.android.settingslib.drawer.Tile;
|
import com.android.settingslib.drawer.Tile;
|
||||||
import com.android.settingslib.suggestions.SuggestionControllerMixin;
|
import com.android.settingslib.suggestions.SuggestionControllerMixin;
|
||||||
|
import com.android.settingslib.utils.IconCache;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -365,31 +366,6 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
|||||||
mRecyclerView.scrollToPosition(mDashboardData.hasSuggestion() ? 1 : 0);
|
mRecyclerView.scrollToPosition(mDashboardData.hasSuggestion() ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class IconCache {
|
|
||||||
private final Context mContext;
|
|
||||||
private final ArrayMap<Icon, Drawable> mMap = new ArrayMap<>();
|
|
||||||
|
|
||||||
public IconCache(Context context) {
|
|
||||||
mContext = context;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Drawable getIcon(Icon icon) {
|
|
||||||
if (icon == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
Drawable drawable = mMap.get(icon);
|
|
||||||
if (drawable == null) {
|
|
||||||
drawable = icon.loadDrawable(mContext);
|
|
||||||
updateIcon(icon, drawable);
|
|
||||||
}
|
|
||||||
return drawable;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateIcon(Icon icon, Drawable drawable) {
|
|
||||||
mMap.put(icon, drawable);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class DashboardItemHolder extends RecyclerView.ViewHolder {
|
public static class DashboardItemHolder extends RecyclerView.ViewHolder {
|
||||||
public final ImageView icon;
|
public final ImageView icon;
|
||||||
public final TextView title;
|
public final TextView title;
|
||||||
|
@@ -38,7 +38,6 @@ import android.widget.LinearLayout;
|
|||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.dashboard.DashboardAdapter.DashboardItemHolder;
|
import com.android.settings.dashboard.DashboardAdapter.DashboardItemHolder;
|
||||||
import com.android.settings.dashboard.DashboardAdapter.IconCache;
|
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.Utils;
|
import com.android.settingslib.Utils;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
@@ -46,6 +45,7 @@ import com.android.settingslib.core.lifecycle.Lifecycle;
|
|||||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
|
import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
|
||||||
import com.android.settingslib.suggestions.SuggestionControllerMixin;
|
import com.android.settingslib.suggestions.SuggestionControllerMixin;
|
||||||
|
import com.android.settingslib.utils.IconCache;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@@ -47,6 +47,7 @@ import com.android.settings.testutils.FakeFeatureFactory;
|
|||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.testutils.shadow.SettingsShadowResources;
|
import com.android.settings.testutils.shadow.SettingsShadowResources;
|
||||||
import com.android.settingslib.drawer.Tile;
|
import com.android.settingslib.drawer.Tile;
|
||||||
|
import com.android.settingslib.utils.IconCache;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -244,7 +245,7 @@ public class DashboardAdapterTest {
|
|||||||
new DashboardAdapter.DashboardItemHolder(view);
|
new DashboardAdapter.DashboardItemHolder(view);
|
||||||
final Tile tile = new Tile();
|
final Tile tile = new Tile();
|
||||||
tile.icon = Icon.createWithResource(context, R.drawable.ic_settings);
|
tile.icon = Icon.createWithResource(context, R.drawable.ic_settings);
|
||||||
final DashboardAdapter.IconCache iconCache = mock(DashboardAdapter.IconCache.class);
|
final IconCache iconCache = mock(IconCache.class);
|
||||||
when(iconCache.getIcon(tile.icon)).thenReturn(context.getDrawable(R.drawable.ic_settings));
|
when(iconCache.getIcon(tile.icon)).thenReturn(context.getDrawable(R.drawable.ic_settings));
|
||||||
|
|
||||||
mDashboardAdapter = new DashboardAdapter(context, null /* savedInstanceState */,
|
mDashboardAdapter = new DashboardAdapter(context, null /* savedInstanceState */,
|
||||||
@@ -265,7 +266,7 @@ public class DashboardAdapterTest {
|
|||||||
tile.icon = mock(Icon.class);
|
tile.icon = mock(Icon.class);
|
||||||
when(tile.icon.getResPackage()).thenReturn("another.package");
|
when(tile.icon.getResPackage()).thenReturn("another.package");
|
||||||
|
|
||||||
final DashboardAdapter.IconCache iconCache = mock(DashboardAdapter.IconCache.class);
|
final IconCache iconCache = mock(IconCache.class);
|
||||||
when(iconCache.getIcon(tile.icon)).thenReturn(context.getDrawable(R.drawable.ic_settings));
|
when(iconCache.getIcon(tile.icon)).thenReturn(context.getDrawable(R.drawable.ic_settings));
|
||||||
|
|
||||||
mDashboardAdapter = new DashboardAdapter(context, null /* savedInstanceState */,
|
mDashboardAdapter = new DashboardAdapter(context, null /* savedInstanceState */,
|
||||||
|
@@ -48,6 +48,7 @@ import com.android.settings.dashboard.DashboardAdapter;
|
|||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
import com.android.settingslib.suggestions.SuggestionControllerMixin;
|
import com.android.settingslib.suggestions.SuggestionControllerMixin;
|
||||||
|
import com.android.settingslib.utils.IconCache;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -252,7 +253,7 @@ public class SuggestionAdapterTest {
|
|||||||
mSuggestionHolder = mSuggestionAdapter.onCreateViewHolder(
|
mSuggestionHolder = mSuggestionAdapter.onCreateViewHolder(
|
||||||
new FrameLayout(RuntimeEnvironment.application),
|
new FrameLayout(RuntimeEnvironment.application),
|
||||||
mSuggestionAdapter.getItemViewType(0));
|
mSuggestionAdapter.getItemViewType(0));
|
||||||
DashboardAdapter.IconCache cache = mock(DashboardAdapter.IconCache.class);
|
IconCache cache = mock(IconCache.class);
|
||||||
final Drawable drawable = mock(Drawable.class);
|
final Drawable drawable = mock(Drawable.class);
|
||||||
when(cache.getIcon(icon)).thenReturn(drawable);
|
when(cache.getIcon(icon)).thenReturn(drawable);
|
||||||
ReflectionHelpers.setField(mSuggestionAdapter, "mCache", cache);
|
ReflectionHelpers.setField(mSuggestionAdapter, "mCache", cache);
|
||||||
@@ -280,7 +281,7 @@ public class SuggestionAdapterTest {
|
|||||||
mSuggestionHolder = mSuggestionAdapter.onCreateViewHolder(
|
mSuggestionHolder = mSuggestionAdapter.onCreateViewHolder(
|
||||||
new FrameLayout(RuntimeEnvironment.application),
|
new FrameLayout(RuntimeEnvironment.application),
|
||||||
mSuggestionAdapter.getItemViewType(0));
|
mSuggestionAdapter.getItemViewType(0));
|
||||||
DashboardAdapter.IconCache cache = mock(DashboardAdapter.IconCache.class);
|
IconCache cache = mock(IconCache.class);
|
||||||
final Drawable drawable = mock(Drawable.class);
|
final Drawable drawable = mock(Drawable.class);
|
||||||
when(cache.getIcon(icon)).thenReturn(drawable);
|
when(cache.getIcon(icon)).thenReturn(drawable);
|
||||||
ReflectionHelpers.setField(mSuggestionAdapter, "mCache", cache);
|
ReflectionHelpers.setField(mSuggestionAdapter, "mCache", cache);
|
||||||
|
Reference in New Issue
Block a user