Remove custom tintable check.
Make a bunch keys private in tile and DashboardCategory Bug: 77600770 Test: robotests Change-Id: I4693e6bb71bd50cc664f578c7f8e25e67da20b67
This commit is contained in:
@@ -42,6 +42,16 @@ import android.view.ViewGroup;
|
|||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.Toolbar;
|
import android.widget.Toolbar;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||||
|
import androidx.preference.Preference;
|
||||||
|
import androidx.preference.PreferenceFragmentCompat;
|
||||||
|
import androidx.preference.PreferenceManager;
|
||||||
|
|
||||||
import com.android.internal.util.ArrayUtils;
|
import com.android.internal.util.ArrayUtils;
|
||||||
import com.android.settings.Settings.WifiSettingsActivity;
|
import com.android.settings.Settings.WifiSettingsActivity;
|
||||||
import com.android.settings.applications.manageapplications.ManageApplications;
|
import com.android.settings.applications.manageapplications.ManageApplications;
|
||||||
@@ -65,16 +75,6 @@ import com.android.settingslib.utils.ThreadUtils;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
import androidx.fragment.app.FragmentManager;
|
|
||||||
import androidx.fragment.app.FragmentTransaction;
|
|
||||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
|
||||||
import androidx.preference.Preference;
|
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
|
||||||
import androidx.preference.PreferenceManager;
|
|
||||||
|
|
||||||
|
|
||||||
public class SettingsActivity extends SettingsBaseActivity
|
public class SettingsActivity extends SettingsBaseActivity
|
||||||
implements PreferenceManager.OnPreferenceTreeClickListener,
|
implements PreferenceManager.OnPreferenceTreeClickListener,
|
||||||
|
@@ -126,7 +126,7 @@ public class AccountDetailDashboardFragment extends DashboardFragment {
|
|||||||
if (mAccountType == null) {
|
if (mAccountType == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
final Bundle metadata = tile.metaData;
|
final Bundle metadata = tile.getMetaData();
|
||||||
if (metadata == null) {
|
if (metadata == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@@ -153,7 +153,7 @@ public class CategoryManager {
|
|||||||
boolean useNewKey = false;
|
boolean useNewKey = false;
|
||||||
boolean useOldKey = false;
|
boolean useOldKey = false;
|
||||||
for (Tile tile : tiles) {
|
for (Tile tile : tiles) {
|
||||||
if (CategoryKey.KEY_COMPAT_MAP.containsKey(tile.category)) {
|
if (CategoryKey.KEY_COMPAT_MAP.containsKey(tile.getCategory())) {
|
||||||
useOldKey = true;
|
useOldKey = true;
|
||||||
} else {
|
} else {
|
||||||
useNewKey = true;
|
useNewKey = true;
|
||||||
@@ -163,12 +163,13 @@ public class CategoryManager {
|
|||||||
// Uses only old key, map them to new keys one by one.
|
// Uses only old key, map them to new keys one by one.
|
||||||
if (useOldKey && !useNewKey) {
|
if (useOldKey && !useNewKey) {
|
||||||
for (Tile tile : tiles) {
|
for (Tile tile : tiles) {
|
||||||
final String newCategoryKey = CategoryKey.KEY_COMPAT_MAP.get(tile.category);
|
final String newCategoryKey =
|
||||||
tile.category = newCategoryKey;
|
CategoryKey.KEY_COMPAT_MAP.get(tile.getCategory());
|
||||||
|
tile.setCategory(newCategoryKey);
|
||||||
// move tile to new category.
|
// move tile to new category.
|
||||||
DashboardCategory newCategory = categoryByKeyMap.get(newCategoryKey);
|
DashboardCategory newCategory = categoryByKeyMap.get(newCategoryKey);
|
||||||
if (newCategory == null) {
|
if (newCategory == null) {
|
||||||
newCategory = new DashboardCategory();
|
newCategory = new DashboardCategory(newCategoryKey);
|
||||||
categoryByKeyMap.put(newCategoryKey, newCategory);
|
categoryByKeyMap.put(newCategoryKey, newCategory);
|
||||||
}
|
}
|
||||||
newCategory.addTile(tile);
|
newCategory.addTile(tile);
|
||||||
|
@@ -321,8 +321,9 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
|||||||
&& !(icon instanceof RoundedHomepageIcon)) {
|
&& !(icon instanceof RoundedHomepageIcon)) {
|
||||||
icon = new RoundedHomepageIcon(mContext, icon);
|
icon = new RoundedHomepageIcon(mContext, icon);
|
||||||
try {
|
try {
|
||||||
if (tile.metaData != null) {
|
final Bundle metaData = tile.getMetaData();
|
||||||
final int colorRes = tile.metaData.getInt(
|
if (metaData != null) {
|
||||||
|
final int colorRes = metaData.getInt(
|
||||||
TileUtils.META_DATA_PREFERENCE_ICON_BACKGROUND_HINT, 0 /* default */);
|
TileUtils.META_DATA_PREFERENCE_ICON_BACKGROUND_HINT, 0 /* default */);
|
||||||
if (colorRes != 0) {
|
if (colorRes != 0) {
|
||||||
final int bgColor = mContext.getPackageManager()
|
final int bgColor = mContext.getPackageManager()
|
||||||
|
@@ -143,7 +143,7 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
|||||||
}
|
}
|
||||||
bindSummary(pref, tile);
|
bindSummary(pref, tile);
|
||||||
bindIcon(pref, tile);
|
bindIcon(pref, tile);
|
||||||
final Bundle metadata = tile.metaData;
|
final Bundle metadata = tile.getMetaData();
|
||||||
String clsName = null;
|
String clsName = null;
|
||||||
String action = null;
|
String action = null;
|
||||||
Integer order = null;
|
Integer order = null;
|
||||||
@@ -218,15 +218,15 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
|||||||
private void bindSummary(Preference preference, Tile tile) {
|
private void bindSummary(Preference preference, Tile tile) {
|
||||||
if (tile.summary != null) {
|
if (tile.summary != null) {
|
||||||
preference.setSummary(tile.summary);
|
preference.setSummary(tile.summary);
|
||||||
} else if (tile.metaData != null
|
} else if (tile.getMetaData() != null
|
||||||
&& tile.metaData.containsKey(META_DATA_PREFERENCE_SUMMARY_URI)) {
|
&& tile.getMetaData().containsKey(META_DATA_PREFERENCE_SUMMARY_URI)) {
|
||||||
// Set a placeholder summary before starting to fetch real summary, this is necessary
|
// Set a placeholder summary before starting to fetch real summary, this is necessary
|
||||||
// to avoid preference height change.
|
// to avoid preference height change.
|
||||||
preference.setSummary(R.string.summary_placeholder);
|
preference.setSummary(R.string.summary_placeholder);
|
||||||
|
|
||||||
ThreadUtils.postOnBackgroundThread(() -> {
|
ThreadUtils.postOnBackgroundThread(() -> {
|
||||||
final Map<String, IContentProvider> providerMap = new ArrayMap<>();
|
final Map<String, IContentProvider> providerMap = new ArrayMap<>();
|
||||||
final String uri = tile.metaData.getString(META_DATA_PREFERENCE_SUMMARY_URI);
|
final String uri = tile.getMetaData().getString(META_DATA_PREFERENCE_SUMMARY_URI);
|
||||||
final String summary = TileUtils.getTextFromUri(
|
final String summary = TileUtils.getTextFromUri(
|
||||||
mContext, uri, providerMap, META_DATA_PREFERENCE_SUMMARY);
|
mContext, uri, providerMap, META_DATA_PREFERENCE_SUMMARY);
|
||||||
ThreadUtils.postOnMainThread(() -> preference.setSummary(summary));
|
ThreadUtils.postOnMainThread(() -> preference.setSummary(summary));
|
||||||
@@ -241,8 +241,8 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
|||||||
final Icon tileIcon = tile.getIcon(mContext);
|
final Icon tileIcon = tile.getIcon(mContext);
|
||||||
if (tileIcon != null) {
|
if (tileIcon != null) {
|
||||||
preference.setIcon(tileIcon.loadDrawable(preference.getContext()));
|
preference.setIcon(tileIcon.loadDrawable(preference.getContext()));
|
||||||
} else if (tile.metaData != null
|
} else if (tile.getMetaData() != null
|
||||||
&& tile.metaData.containsKey(META_DATA_PREFERENCE_ICON_URI)) {
|
&& tile.getMetaData().containsKey(META_DATA_PREFERENCE_ICON_URI)) {
|
||||||
ThreadUtils.postOnBackgroundThread(() -> {
|
ThreadUtils.postOnBackgroundThread(() -> {
|
||||||
String packageName = null;
|
String packageName = null;
|
||||||
if (tile.intent != null) {
|
if (tile.intent != null) {
|
||||||
@@ -254,7 +254,7 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
final Map<String, IContentProvider> providerMap = new ArrayMap<>();
|
final Map<String, IContentProvider> providerMap = new ArrayMap<>();
|
||||||
final String uri = tile.metaData.getString(META_DATA_PREFERENCE_ICON_URI);
|
final String uri = tile.getMetaData().getString(META_DATA_PREFERENCE_ICON_URI);
|
||||||
final Pair<String, Integer> iconInfo = TileUtils.getIconFromUri(
|
final Pair<String, Integer> iconInfo = TileUtils.getIconFromUri(
|
||||||
mContext, packageName, uri, providerMap);
|
mContext, packageName, uri, providerMap);
|
||||||
if (iconInfo == null) {
|
if (iconInfo == null) {
|
||||||
|
@@ -18,6 +18,7 @@ package com.android.settings.dashboard;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.TypedArray;
|
import android.content.res.TypedArray;
|
||||||
|
import android.graphics.drawable.Icon;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.ArrayMap;
|
import android.util.ArrayMap;
|
||||||
@@ -40,7 +41,6 @@ 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.drawer.DashboardCategory;
|
import com.android.settingslib.drawer.DashboardCategory;
|
||||||
import com.android.settingslib.drawer.Tile;
|
import com.android.settingslib.drawer.Tile;
|
||||||
import com.android.settingslib.drawer.TileUtils;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@@ -254,24 +254,6 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
|
||||||
boolean tintTileIcon(Tile tile) {
|
|
||||||
final Context context = getContext();
|
|
||||||
if (tile.getIcon(context) == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// First check if the tile has set the icon tintable metadata.
|
|
||||||
final Bundle metadata = tile.metaData;
|
|
||||||
if (metadata != null
|
|
||||||
&& metadata.containsKey(TileUtils.META_DATA_PREFERENCE_ICON_TINTABLE)) {
|
|
||||||
return metadata.getBoolean(TileUtils.META_DATA_PREFERENCE_ICON_TINTABLE);
|
|
||||||
}
|
|
||||||
final String pkgName = context.getPackageName();
|
|
||||||
// If this drawable is coming from outside Settings, tint it to match the color.
|
|
||||||
return pkgName != null && tile.intent != null
|
|
||||||
&& !pkgName.equals(tile.intent.getComponent().getPackageName());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays resource based tiles.
|
* Displays resource based tiles.
|
||||||
*/
|
*/
|
||||||
@@ -370,8 +352,11 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
|||||||
if (!displayTile(tile)) {
|
if (!displayTile(tile)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (tintTileIcon(tile)) {
|
if (tile.isIconTintable(context)) {
|
||||||
tile.getIcon(context).setTint(tintColor);
|
final Icon icon = tile.getIcon(context);
|
||||||
|
if (icon != null) {
|
||||||
|
icon.setTint(tintColor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (mDashboardTilePrefKeys.contains(key)) {
|
if (mDashboardTilePrefKeys.contains(key)) {
|
||||||
// Have the key already, will rebind.
|
// Have the key already, will rebind.
|
||||||
|
@@ -30,6 +30,8 @@ import android.util.ArrayMap;
|
|||||||
import android.util.ArraySet;
|
import android.util.ArraySet;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import com.android.settings.SettingsActivity;
|
import com.android.settings.SettingsActivity;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.drawer.DashboardCategory;
|
import com.android.settingslib.drawer.DashboardCategory;
|
||||||
@@ -39,8 +41,6 @@ import com.android.settingslib.utils.ThreadUtils;
|
|||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
|
||||||
|
|
||||||
public class SummaryLoader {
|
public class SummaryLoader {
|
||||||
private static final boolean DEBUG = DashboardSummary.DEBUG;
|
private static final boolean DEBUG = DashboardSummary.DEBUG;
|
||||||
private static final String TAG = "SummaryLoader";
|
private static final String TAG = "SummaryLoader";
|
||||||
@@ -160,7 +160,7 @@ public class SummaryLoader {
|
|||||||
// TODO: Load summary indirectly.
|
// TODO: Load summary indirectly.
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
Bundle metaData = getMetaData(tile);
|
final Bundle metaData = tile.getMetaData();
|
||||||
if (metaData == null) {
|
if (metaData == null) {
|
||||||
if (DEBUG) Log.d(TAG, "No metadata specified for " + tile.intent.getComponent());
|
if (DEBUG) Log.d(TAG, "No metadata specified for " + tile.intent.getComponent());
|
||||||
return null;
|
return null;
|
||||||
@@ -187,10 +187,6 @@ public class SummaryLoader {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Bundle getMetaData(Tile tile) {
|
|
||||||
return tile.metaData;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers a receiver and automatically unregisters it when the activity is stopping.
|
* Registers a receiver and automatically unregisters it when the activity is stopping.
|
||||||
* This ensures that the receivers are unregistered immediately, since most summary loader
|
* This ensures that the receivers are unregistered immediately, since most summary loader
|
||||||
|
@@ -167,8 +167,8 @@ public class SettingsSearchIndexablesProvider extends SearchIndexablesProvider {
|
|||||||
// Build parent-child class pairs for all children listed under this key.
|
// Build parent-child class pairs for all children listed under this key.
|
||||||
for (Tile tile : category.getTiles()) {
|
for (Tile tile : category.getTiles()) {
|
||||||
String childClass = null;
|
String childClass = null;
|
||||||
if (tile.metaData != null) {
|
if (tile.getMetaData() != null) {
|
||||||
childClass = tile.metaData.getString(
|
childClass = tile.getMetaData().getString(
|
||||||
SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS);
|
SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS);
|
||||||
}
|
}
|
||||||
if (childClass == null) {
|
if (childClass == null) {
|
||||||
|
@@ -57,10 +57,13 @@ public class AccountDetailDashboardFragmentTest {
|
|||||||
|
|
||||||
private AccountDetailDashboardFragment mFragment;
|
private AccountDetailDashboardFragment mFragment;
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
private ActivityInfo mActivityInfo;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
mContext = RuntimeEnvironment.application;
|
mContext = RuntimeEnvironment.application;
|
||||||
|
mActivityInfo = new ActivityInfo();
|
||||||
|
mActivityInfo.metaData = new Bundle();
|
||||||
|
|
||||||
final Bundle args = new Bundle();
|
final Bundle args = new Bundle();
|
||||||
args.putParcelable(METADATA_USER_HANDLE, UserHandle.CURRENT);
|
args.putParcelable(METADATA_USER_HANDLE, UserHandle.CURRENT);
|
||||||
@@ -79,32 +82,26 @@ public class AccountDetailDashboardFragmentTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void refreshDashboardTiles_HasAccountType_shouldDisplay() {
|
public void refreshDashboardTiles_HasAccountType_shouldDisplay() {
|
||||||
final Tile tile = new Tile(new ActivityInfo());
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT_DETAIL);
|
||||||
final Bundle metaData = new Bundle();
|
mActivityInfo.metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT_DETAIL);
|
||||||
metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT_DETAIL);
|
mActivityInfo.metaData.putString(METADATA_ACCOUNT_TYPE, "com.abc");
|
||||||
metaData.putString(METADATA_ACCOUNT_TYPE, "com.abc");
|
|
||||||
tile.metaData = metaData;
|
|
||||||
|
|
||||||
assertThat(mFragment.displayTile(tile)).isTrue();
|
assertThat(mFragment.displayTile(tile)).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void refreshDashboardTiles_NoAccountType_shouldNotDisplay() {
|
public void refreshDashboardTiles_NoAccountType_shouldNotDisplay() {
|
||||||
final Tile tile = new Tile(new ActivityInfo());
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT_DETAIL);
|
||||||
final Bundle metaData = new Bundle();
|
mActivityInfo.metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT_DETAIL);
|
||||||
metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT_DETAIL);
|
|
||||||
tile.metaData = metaData;
|
|
||||||
|
|
||||||
assertThat(mFragment.displayTile(tile)).isFalse();
|
assertThat(mFragment.displayTile(tile)).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void refreshDashboardTiles_OtherAccountType_shouldNotDisplay() {
|
public void refreshDashboardTiles_OtherAccountType_shouldNotDisplay() {
|
||||||
final Tile tile = new Tile(new ActivityInfo());
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT_DETAIL);
|
||||||
final Bundle metaData = new Bundle();
|
mActivityInfo.metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT_DETAIL);
|
||||||
metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT_DETAIL);
|
mActivityInfo.metaData.putString(METADATA_ACCOUNT_TYPE, "com.other");
|
||||||
metaData.putString(METADATA_ACCOUNT_TYPE, "com.other");
|
|
||||||
tile.metaData = metaData;
|
|
||||||
|
|
||||||
assertThat(mFragment.displayTile(tile)).isFalse();
|
assertThat(mFragment.displayTile(tile)).isFalse();
|
||||||
}
|
}
|
||||||
@@ -118,12 +115,12 @@ public class AccountDetailDashboardFragmentTest {
|
|||||||
when(packageManager.resolveActivity(any(Intent.class), anyInt()))
|
when(packageManager.resolveActivity(any(Intent.class), anyInt()))
|
||||||
.thenReturn(mock(ResolveInfo.class));
|
.thenReturn(mock(ResolveInfo.class));
|
||||||
|
|
||||||
final Tile tile = new Tile(new ActivityInfo());
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT_DETAIL);
|
||||||
tile.key = "key";
|
tile.key = "key";
|
||||||
tile.metaData = new Bundle();
|
mActivityInfo.metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT);
|
||||||
tile.metaData.putString(METADATA_CATEGORY, CategoryKey.CATEGORY_ACCOUNT);
|
mActivityInfo.metaData.putString(METADATA_ACCOUNT_TYPE, "com.abc");
|
||||||
tile.metaData.putString(METADATA_ACCOUNT_TYPE, "com.abc");
|
mActivityInfo.metaData.putString("com.android.settings.intent.action",
|
||||||
tile.metaData.putString("com.android.settings.intent.action", Intent.ACTION_ASSIST);
|
Intent.ACTION_ASSIST);
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
tile.userHandle = null;
|
tile.userHandle = null;
|
||||||
mFragment.displayTile(tile);
|
mFragment.displayTile(tile);
|
||||||
|
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package com.android.settings.dashboard;
|
package com.android.settings.dashboard;
|
||||||
|
|
||||||
|
import static com.android.settingslib.drawer.CategoryKey.CATEGORY_HOMEPAGE;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
@@ -65,11 +67,9 @@ public class CategoryManagerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void backwardCompatCleanupForCategory_shouldNotChangeCategoryForNewKeys() {
|
public void backwardCompatCleanupForCategory_shouldNotChangeCategoryForNewKeys() {
|
||||||
final Tile tile1 = new Tile(mActivityInfo);
|
final Tile tile1 = new Tile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT);
|
||||||
final Tile tile2 = new Tile(mActivityInfo);
|
final Tile tile2 = new Tile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT);
|
||||||
tile1.category = CategoryKey.CATEGORY_ACCOUNT;
|
final DashboardCategory category = new DashboardCategory(CategoryKey.CATEGORY_ACCOUNT);
|
||||||
tile2.category = CategoryKey.CATEGORY_ACCOUNT;
|
|
||||||
final DashboardCategory category = new DashboardCategory();
|
|
||||||
category.addTile(tile1);
|
category.addTile(tile1);
|
||||||
category.addTile(tile2);
|
category.addTile(tile2);
|
||||||
mCategoryByKeyMap.put(CategoryKey.CATEGORY_ACCOUNT, category);
|
mCategoryByKeyMap.put(CategoryKey.CATEGORY_ACCOUNT, category);
|
||||||
@@ -84,14 +84,12 @@ public class CategoryManagerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void backwardCompatCleanupForCategory_shouldNotChangeCategoryForMixedKeys() {
|
public void backwardCompatCleanupForCategory_shouldNotChangeCategoryForMixedKeys() {
|
||||||
final Tile tile1 = new Tile(mActivityInfo);
|
final Tile tile1 = new Tile(mActivityInfo, CategoryKey.CATEGORY_ACCOUNT);
|
||||||
final Tile tile2 = new Tile(mActivityInfo);
|
|
||||||
final String oldCategory = "com.android.settings.category.wireless";
|
final String oldCategory = "com.android.settings.category.wireless";
|
||||||
tile1.category = CategoryKey.CATEGORY_ACCOUNT;
|
final Tile tile2 = new Tile(mActivityInfo, oldCategory);
|
||||||
tile2.category = oldCategory;
|
final DashboardCategory category1 = new DashboardCategory(CategoryKey.CATEGORY_ACCOUNT);
|
||||||
final DashboardCategory category1 = new DashboardCategory();
|
|
||||||
category1.addTile(tile1);
|
category1.addTile(tile1);
|
||||||
final DashboardCategory category2 = new DashboardCategory();
|
final DashboardCategory category2 = new DashboardCategory(oldCategory);
|
||||||
category2.addTile(tile2);
|
category2.addTile(tile2);
|
||||||
mCategoryByKeyMap.put(CategoryKey.CATEGORY_ACCOUNT, category1);
|
mCategoryByKeyMap.put(CategoryKey.CATEGORY_ACCOUNT, category1);
|
||||||
mCategoryByKeyMap.put(oldCategory, category2);
|
mCategoryByKeyMap.put(oldCategory, category2);
|
||||||
@@ -108,10 +106,10 @@ public class CategoryManagerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void backwardCompatCleanupForCategory_shouldChangeCategoryForOldKeys() {
|
public void backwardCompatCleanupForCategory_shouldChangeCategoryForOldKeys() {
|
||||||
final Tile tile1 = new Tile(mActivityInfo);
|
|
||||||
final String oldCategory = "com.android.settings.category.wireless";
|
final String oldCategory = "com.android.settings.category.wireless";
|
||||||
tile1.category = oldCategory;
|
final Tile tile1 = new Tile(mActivityInfo, oldCategory);
|
||||||
final DashboardCategory category1 = new DashboardCategory();
|
tile1.setCategory(oldCategory);
|
||||||
|
final DashboardCategory category1 = new DashboardCategory(oldCategory);
|
||||||
category1.addTile(tile1);
|
category1.addTile(tile1);
|
||||||
mCategoryByKeyMap.put(oldCategory, category1);
|
mCategoryByKeyMap.put(oldCategory, category1);
|
||||||
mTileByComponentCache.put(new Pair<>("PACKAGE", "CLASS1"), tile1);
|
mTileByComponentCache.put(new Pair<>("PACKAGE", "CLASS1"), tile1);
|
||||||
@@ -131,23 +129,23 @@ public class CategoryManagerTest {
|
|||||||
public void sortCategories_singlePackage_shouldReorderBasedOnPriority() {
|
public void sortCategories_singlePackage_shouldReorderBasedOnPriority() {
|
||||||
// Create some fake tiles that are not sorted.
|
// Create some fake tiles that are not sorted.
|
||||||
final String testPackage = "com.android.test";
|
final String testPackage = "com.android.test";
|
||||||
final DashboardCategory category = new DashboardCategory();
|
final DashboardCategory category = new DashboardCategory(CATEGORY_HOMEPAGE);
|
||||||
final Tile tile1 = new Tile(mActivityInfo);
|
final Tile tile1 = new Tile(mActivityInfo, category.key);
|
||||||
tile1.intent =
|
tile1.intent =
|
||||||
new Intent().setComponent(new ComponentName(testPackage, "class1"));
|
new Intent().setComponent(new ComponentName(testPackage, "class1"));
|
||||||
tile1.priority = 100;
|
tile1.priority = 100;
|
||||||
final Tile tile2 = new Tile(mActivityInfo);
|
final Tile tile2 = new Tile(mActivityInfo, category.key);
|
||||||
tile2.intent =
|
tile2.intent =
|
||||||
new Intent().setComponent(new ComponentName(testPackage, "class2"));
|
new Intent().setComponent(new ComponentName(testPackage, "class2"));
|
||||||
tile2.priority = 50;
|
tile2.priority = 50;
|
||||||
final Tile tile3 = new Tile(mActivityInfo);
|
final Tile tile3 = new Tile(mActivityInfo, category.key);
|
||||||
tile3.intent =
|
tile3.intent =
|
||||||
new Intent().setComponent(new ComponentName(testPackage, "class3"));
|
new Intent().setComponent(new ComponentName(testPackage, "class3"));
|
||||||
tile3.priority = 200;
|
tile3.priority = 200;
|
||||||
category.addTile(tile1);
|
category.addTile(tile1);
|
||||||
category.addTile(tile2);
|
category.addTile(tile2);
|
||||||
category.addTile(tile3);
|
category.addTile(tile3);
|
||||||
mCategoryByKeyMap.put(CategoryKey.CATEGORY_HOMEPAGE, category);
|
mCategoryByKeyMap.put(CATEGORY_HOMEPAGE, category);
|
||||||
|
|
||||||
// Sort their priorities
|
// Sort their priorities
|
||||||
mCategoryManager.sortCategories(ShadowApplication.getInstance().getApplicationContext(),
|
mCategoryManager.sortCategories(ShadowApplication.getInstance().getApplicationContext(),
|
||||||
@@ -164,23 +162,23 @@ public class CategoryManagerTest {
|
|||||||
// Create some fake tiles that are not sorted.
|
// Create some fake tiles that are not sorted.
|
||||||
final String testPackage1 = "com.android.test1";
|
final String testPackage1 = "com.android.test1";
|
||||||
final String testPackage2 = "com.android.test2";
|
final String testPackage2 = "com.android.test2";
|
||||||
final DashboardCategory category = new DashboardCategory();
|
final DashboardCategory category = new DashboardCategory(CATEGORY_HOMEPAGE);
|
||||||
final Tile tile1 = new Tile(mActivityInfo);
|
final Tile tile1 = new Tile(mActivityInfo, category.key);
|
||||||
tile1.intent =
|
tile1.intent =
|
||||||
new Intent().setComponent(new ComponentName(testPackage2, "class1"));
|
new Intent().setComponent(new ComponentName(testPackage2, "class1"));
|
||||||
tile1.priority = 100;
|
tile1.priority = 100;
|
||||||
final Tile tile2 = new Tile(mActivityInfo);
|
final Tile tile2 = new Tile(mActivityInfo, category.key);
|
||||||
tile2.intent =
|
tile2.intent =
|
||||||
new Intent().setComponent(new ComponentName(testPackage1, "class2"));
|
new Intent().setComponent(new ComponentName(testPackage1, "class2"));
|
||||||
tile2.priority = 100;
|
tile2.priority = 100;
|
||||||
final Tile tile3 = new Tile(mActivityInfo);
|
final Tile tile3 = new Tile(mActivityInfo, category.key);
|
||||||
tile3.intent =
|
tile3.intent =
|
||||||
new Intent().setComponent(new ComponentName(testPackage1, "class3"));
|
new Intent().setComponent(new ComponentName(testPackage1, "class3"));
|
||||||
tile3.priority = 50;
|
tile3.priority = 50;
|
||||||
category.addTile(tile1);
|
category.addTile(tile1);
|
||||||
category.addTile(tile2);
|
category.addTile(tile2);
|
||||||
category.addTile(tile3);
|
category.addTile(tile3);
|
||||||
mCategoryByKeyMap.put(CategoryKey.CATEGORY_HOMEPAGE, category);
|
mCategoryByKeyMap.put(CATEGORY_HOMEPAGE, category);
|
||||||
|
|
||||||
// Sort their priorities
|
// Sort their priorities
|
||||||
mCategoryManager.sortCategories(mContext, mCategoryByKeyMap);
|
mCategoryManager.sortCategories(mContext, mCategoryByKeyMap);
|
||||||
@@ -195,23 +193,23 @@ public class CategoryManagerTest {
|
|||||||
public void sortCategories_internalPackageTiles_shouldSkipTileForInternalPackage() {
|
public void sortCategories_internalPackageTiles_shouldSkipTileForInternalPackage() {
|
||||||
// Create some fake tiles that are not sorted.
|
// Create some fake tiles that are not sorted.
|
||||||
final String testPackage = mContext.getPackageName();
|
final String testPackage = mContext.getPackageName();
|
||||||
final DashboardCategory category = new DashboardCategory();
|
final DashboardCategory category = new DashboardCategory(CATEGORY_HOMEPAGE);
|
||||||
final Tile tile1 = new Tile(mActivityInfo);
|
final Tile tile1 = new Tile(mActivityInfo, category.key);
|
||||||
tile1.intent =
|
tile1.intent =
|
||||||
new Intent().setComponent(new ComponentName(testPackage, "class1"));
|
new Intent().setComponent(new ComponentName(testPackage, "class1"));
|
||||||
tile1.priority = 100;
|
tile1.priority = 100;
|
||||||
final Tile tile2 = new Tile(mActivityInfo);
|
final Tile tile2 = new Tile(mActivityInfo, category.key);
|
||||||
tile2.intent =
|
tile2.intent =
|
||||||
new Intent().setComponent(new ComponentName(testPackage, "class2"));
|
new Intent().setComponent(new ComponentName(testPackage, "class2"));
|
||||||
tile2.priority = 100;
|
tile2.priority = 100;
|
||||||
final Tile tile3 = new Tile(mActivityInfo);
|
final Tile tile3 = new Tile(mActivityInfo, category.key);
|
||||||
tile3.intent =
|
tile3.intent =
|
||||||
new Intent().setComponent(new ComponentName(testPackage, "class3"));
|
new Intent().setComponent(new ComponentName(testPackage, "class3"));
|
||||||
tile3.priority = 50;
|
tile3.priority = 50;
|
||||||
category.addTile(tile1);
|
category.addTile(tile1);
|
||||||
category.addTile(tile2);
|
category.addTile(tile2);
|
||||||
category.addTile(tile3);
|
category.addTile(tile3);
|
||||||
mCategoryByKeyMap.put(CategoryKey.CATEGORY_HOMEPAGE, category);
|
mCategoryByKeyMap.put(CATEGORY_HOMEPAGE, category);
|
||||||
|
|
||||||
// Sort their priorities
|
// Sort their priorities
|
||||||
mCategoryManager.sortCategories(mContext, mCategoryByKeyMap);
|
mCategoryManager.sortCategories(mContext, mCategoryByKeyMap);
|
||||||
@@ -227,24 +225,24 @@ public class CategoryManagerTest {
|
|||||||
// Inject one external tile among internal tiles.
|
// Inject one external tile among internal tiles.
|
||||||
final String testPackage = mContext.getPackageName();
|
final String testPackage = mContext.getPackageName();
|
||||||
final String testPackage2 = "com.google.test2";
|
final String testPackage2 = "com.google.test2";
|
||||||
final DashboardCategory category = new DashboardCategory();
|
final DashboardCategory category = new DashboardCategory(CATEGORY_HOMEPAGE);
|
||||||
final Tile tile1 = new Tile(mActivityInfo);
|
final Tile tile1 = new Tile(mActivityInfo, category.key);
|
||||||
tile1.intent = new Intent().setComponent(new ComponentName(testPackage, "class1"));
|
tile1.intent = new Intent().setComponent(new ComponentName(testPackage, "class1"));
|
||||||
tile1.priority = 2;
|
tile1.priority = 2;
|
||||||
final Tile tile2 = new Tile(mActivityInfo);
|
final Tile tile2 = new Tile(mActivityInfo, category.key);
|
||||||
tile2.intent = new Intent().setComponent(new ComponentName(testPackage, "class2"));
|
tile2.intent = new Intent().setComponent(new ComponentName(testPackage, "class2"));
|
||||||
tile2.priority = 1;
|
tile2.priority = 1;
|
||||||
final Tile tile3 = new Tile(mActivityInfo);
|
final Tile tile3 = new Tile(mActivityInfo, category.key);
|
||||||
tile3.intent = new Intent().setComponent(new ComponentName(testPackage2, "class0"));
|
tile3.intent = new Intent().setComponent(new ComponentName(testPackage2, "class0"));
|
||||||
tile3.priority = 0;
|
tile3.priority = 0;
|
||||||
final Tile tile4 = new Tile(mActivityInfo);
|
final Tile tile4 = new Tile(mActivityInfo, category.key);
|
||||||
tile4.intent = new Intent().setComponent(new ComponentName(testPackage, "class3"));
|
tile4.intent = new Intent().setComponent(new ComponentName(testPackage, "class3"));
|
||||||
tile4.priority = -1;
|
tile4.priority = -1;
|
||||||
category.addTile(tile1);
|
category.addTile(tile1);
|
||||||
category.addTile(tile2);
|
category.addTile(tile2);
|
||||||
category.addTile(tile3);
|
category.addTile(tile3);
|
||||||
category.addTile(tile4);
|
category.addTile(tile4);
|
||||||
mCategoryByKeyMap.put(CategoryKey.CATEGORY_HOMEPAGE, category);
|
mCategoryByKeyMap.put(CATEGORY_HOMEPAGE, category);
|
||||||
|
|
||||||
// Sort their priorities
|
// Sort their priorities
|
||||||
mCategoryManager.sortCategories(mContext, mCategoryByKeyMap);
|
mCategoryManager.sortCategories(mContext, mCategoryByKeyMap);
|
||||||
@@ -262,20 +260,20 @@ public class CategoryManagerTest {
|
|||||||
final String testPackage = mContext.getPackageName();
|
final String testPackage = mContext.getPackageName();
|
||||||
final String testPackage2 = "com.google.test2";
|
final String testPackage2 = "com.google.test2";
|
||||||
final String testPackage3 = "com.abcde.test3";
|
final String testPackage3 = "com.abcde.test3";
|
||||||
final DashboardCategory category = new DashboardCategory();
|
final DashboardCategory category = new DashboardCategory(CATEGORY_HOMEPAGE);
|
||||||
final Tile tile1 = new Tile(mActivityInfo);
|
final Tile tile1 = new Tile(mActivityInfo, category.key);
|
||||||
tile1.intent = new Intent().setComponent(new ComponentName(testPackage2, "class1"));
|
tile1.intent = new Intent().setComponent(new ComponentName(testPackage2, "class1"));
|
||||||
tile1.priority = 1;
|
tile1.priority = 1;
|
||||||
final Tile tile2 = new Tile(mActivityInfo);
|
final Tile tile2 = new Tile(mActivityInfo, category.key);
|
||||||
tile2.intent = new Intent().setComponent(new ComponentName(testPackage, "class2"));
|
tile2.intent = new Intent().setComponent(new ComponentName(testPackage, "class2"));
|
||||||
tile2.priority = 1;
|
tile2.priority = 1;
|
||||||
final Tile tile3 = new Tile(mActivityInfo);
|
final Tile tile3 = new Tile(mActivityInfo, category.key);
|
||||||
tile3.intent = new Intent().setComponent(new ComponentName(testPackage3, "class3"));
|
tile3.intent = new Intent().setComponent(new ComponentName(testPackage3, "class3"));
|
||||||
tile3.priority = 1;
|
tile3.priority = 1;
|
||||||
category.addTile(tile1);
|
category.addTile(tile1);
|
||||||
category.addTile(tile2);
|
category.addTile(tile2);
|
||||||
category.addTile(tile3);
|
category.addTile(tile3);
|
||||||
mCategoryByKeyMap.put(CategoryKey.CATEGORY_HOMEPAGE, category);
|
mCategoryByKeyMap.put(CATEGORY_HOMEPAGE, category);
|
||||||
|
|
||||||
// Sort their priorities
|
// Sort their priorities
|
||||||
mCategoryManager.sortCategories(mContext, mCategoryByKeyMap);
|
mCategoryManager.sortCategories(mContext, mCategoryByKeyMap);
|
||||||
@@ -290,23 +288,23 @@ public class CategoryManagerTest {
|
|||||||
public void filterTiles_noDuplicate_noChange() {
|
public void filterTiles_noDuplicate_noChange() {
|
||||||
// Create some unique tiles
|
// Create some unique tiles
|
||||||
final String testPackage = mContext.getPackageName();
|
final String testPackage = mContext.getPackageName();
|
||||||
final DashboardCategory category = new DashboardCategory();
|
final DashboardCategory category = new DashboardCategory(CATEGORY_HOMEPAGE);
|
||||||
final Tile tile1 = new Tile(mActivityInfo);
|
final Tile tile1 = new Tile(mActivityInfo, category.key);
|
||||||
tile1.intent =
|
tile1.intent =
|
||||||
new Intent().setComponent(new ComponentName(testPackage, "class1"));
|
new Intent().setComponent(new ComponentName(testPackage, "class1"));
|
||||||
tile1.priority = 100;
|
tile1.priority = 100;
|
||||||
final Tile tile2 = new Tile(mActivityInfo);
|
final Tile tile2 = new Tile(mActivityInfo, category.key);
|
||||||
tile2.intent =
|
tile2.intent =
|
||||||
new Intent().setComponent(new ComponentName(testPackage, "class2"));
|
new Intent().setComponent(new ComponentName(testPackage, "class2"));
|
||||||
tile2.priority = 100;
|
tile2.priority = 100;
|
||||||
final Tile tile3 = new Tile(mActivityInfo);
|
final Tile tile3 = new Tile(mActivityInfo, category.key);
|
||||||
tile3.intent =
|
tile3.intent =
|
||||||
new Intent().setComponent(new ComponentName(testPackage, "class3"));
|
new Intent().setComponent(new ComponentName(testPackage, "class3"));
|
||||||
tile3.priority = 50;
|
tile3.priority = 50;
|
||||||
category.addTile(tile1);
|
category.addTile(tile1);
|
||||||
category.addTile(tile2);
|
category.addTile(tile2);
|
||||||
category.addTile(tile3);
|
category.addTile(tile3);
|
||||||
mCategoryByKeyMap.put(CategoryKey.CATEGORY_HOMEPAGE, category);
|
mCategoryByKeyMap.put(CATEGORY_HOMEPAGE, category);
|
||||||
|
|
||||||
mCategoryManager.filterDuplicateTiles(mCategoryByKeyMap);
|
mCategoryManager.filterDuplicateTiles(mCategoryByKeyMap);
|
||||||
|
|
||||||
@@ -317,23 +315,23 @@ public class CategoryManagerTest {
|
|||||||
public void filterTiles_hasDuplicate_shouldOnlyKeepUniqueTiles() {
|
public void filterTiles_hasDuplicate_shouldOnlyKeepUniqueTiles() {
|
||||||
// Create tiles pointing to same intent.
|
// Create tiles pointing to same intent.
|
||||||
final String testPackage = mContext.getPackageName();
|
final String testPackage = mContext.getPackageName();
|
||||||
final DashboardCategory category = new DashboardCategory();
|
final DashboardCategory category = new DashboardCategory(CATEGORY_HOMEPAGE);
|
||||||
final Tile tile1 = new Tile(mActivityInfo);
|
final Tile tile1 = new Tile(mActivityInfo, category.key);
|
||||||
tile1.intent =
|
tile1.intent =
|
||||||
new Intent().setComponent(new ComponentName(testPackage, "class1"));
|
new Intent().setComponent(new ComponentName(testPackage, "class1"));
|
||||||
tile1.priority = 100;
|
tile1.priority = 100;
|
||||||
final Tile tile2 = new Tile(mActivityInfo);
|
final Tile tile2 = new Tile(mActivityInfo, category.key);
|
||||||
tile2.intent =
|
tile2.intent =
|
||||||
new Intent().setComponent(new ComponentName(testPackage, "class1"));
|
new Intent().setComponent(new ComponentName(testPackage, "class1"));
|
||||||
tile2.priority = 100;
|
tile2.priority = 100;
|
||||||
final Tile tile3 = new Tile(mActivityInfo);
|
final Tile tile3 = new Tile(mActivityInfo, category.key);
|
||||||
tile3.intent =
|
tile3.intent =
|
||||||
new Intent().setComponent(new ComponentName(testPackage, "class1"));
|
new Intent().setComponent(new ComponentName(testPackage, "class1"));
|
||||||
tile3.priority = 50;
|
tile3.priority = 50;
|
||||||
category.addTile(tile1);
|
category.addTile(tile1);
|
||||||
category.addTile(tile2);
|
category.addTile(tile2);
|
||||||
category.addTile(tile3);
|
category.addTile(tile3);
|
||||||
mCategoryByKeyMap.put(CategoryKey.CATEGORY_HOMEPAGE, category);
|
mCategoryByKeyMap.put(CATEGORY_HOMEPAGE, category);
|
||||||
|
|
||||||
mCategoryManager.filterDuplicateTiles(mCategoryByKeyMap);
|
mCategoryManager.filterDuplicateTiles(mCategoryByKeyMap);
|
||||||
|
|
||||||
|
@@ -50,6 +50,7 @@ import com.android.settings.dashboard.suggestions.SuggestionAdapter;
|
|||||||
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.settings.testutils.shadow.SettingsShadowResources;
|
import com.android.settings.testutils.shadow.SettingsShadowResources;
|
||||||
|
import com.android.settingslib.drawer.CategoryKey;
|
||||||
import com.android.settingslib.drawer.Tile;
|
import com.android.settingslib.drawer.Tile;
|
||||||
import com.android.settingslib.drawer.TileUtils;
|
import com.android.settingslib.drawer.TileUtils;
|
||||||
import com.android.settingslib.utils.IconCache;
|
import com.android.settingslib.utils.IconCache;
|
||||||
@@ -91,6 +92,7 @@ public class DashboardAdapterTest {
|
|||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mFactory = FakeFeatureFactory.setupForTest();
|
mFactory = FakeFeatureFactory.setupForTest();
|
||||||
mActivityInfo = new ActivityInfo();
|
mActivityInfo = new ActivityInfo();
|
||||||
|
mActivityInfo.metaData = new Bundle();
|
||||||
when(mFactory.dashboardFeatureProvider.shouldTintIcon()).thenReturn(true);
|
when(mFactory.dashboardFeatureProvider.shouldTintIcon()).thenReturn(true);
|
||||||
|
|
||||||
when(mContext.getSystemService(Context.WINDOW_SERVICE)).thenReturn(mWindowManager);
|
when(mContext.getSystemService(Context.WINDOW_SERVICE)).thenReturn(mWindowManager);
|
||||||
@@ -201,7 +203,7 @@ public class DashboardAdapterTest {
|
|||||||
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 =
|
||||||
new DashboardAdapter.DashboardItemHolder(view);
|
new DashboardAdapter.DashboardItemHolder(view);
|
||||||
final Tile tile = spy(new Tile(mActivityInfo));
|
final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE));
|
||||||
doReturn(Icon.createWithResource(context, R.drawable.ic_settings))
|
doReturn(Icon.createWithResource(context, R.drawable.ic_settings))
|
||||||
.when(tile).getIcon(context);
|
.when(tile).getIcon(context);
|
||||||
final IconCache iconCache = mock(IconCache.class);
|
final IconCache iconCache = mock(IconCache.class);
|
||||||
@@ -222,7 +224,7 @@ public class DashboardAdapterTest {
|
|||||||
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 =
|
||||||
new DashboardAdapter.DashboardItemHolder(view);
|
new DashboardAdapter.DashboardItemHolder(view);
|
||||||
final Tile tile = spy(new Tile(mActivityInfo));
|
final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE));
|
||||||
final Icon icon = Icon.createWithResource(context, R.drawable.ic_settings);
|
final Icon icon = Icon.createWithResource(context, R.drawable.ic_settings);
|
||||||
doReturn(icon).when(tile).getIcon(context);
|
doReturn(icon).when(tile).getIcon(context);
|
||||||
|
|
||||||
@@ -245,9 +247,8 @@ public class DashboardAdapterTest {
|
|||||||
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 =
|
||||||
new DashboardAdapter.DashboardItemHolder(view);
|
new DashboardAdapter.DashboardItemHolder(view);
|
||||||
final Tile tile = spy(new Tile(mActivityInfo));
|
final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE));
|
||||||
tile.metaData = new Bundle();
|
tile.getMetaData().putInt(TileUtils.META_DATA_PREFERENCE_ICON_BACKGROUND_HINT,
|
||||||
tile.metaData.putInt(TileUtils.META_DATA_PREFERENCE_ICON_BACKGROUND_HINT,
|
|
||||||
R.color.memory_critical);
|
R.color.memory_critical);
|
||||||
doReturn(Icon.createWithResource(context, R.drawable.ic_settings))
|
doReturn(Icon.createWithResource(context, R.drawable.ic_settings))
|
||||||
.when(tile).getIcon(context);
|
.when(tile).getIcon(context);
|
||||||
@@ -271,7 +272,7 @@ public class DashboardAdapterTest {
|
|||||||
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 =
|
||||||
new DashboardAdapter.DashboardItemHolder(view);
|
new DashboardAdapter.DashboardItemHolder(view);
|
||||||
final Tile tile = spy(new Tile(mActivityInfo));
|
final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE));
|
||||||
doReturn(mock(Icon.class)).when(tile).getIcon(context);
|
doReturn(mock(Icon.class)).when(tile).getIcon(context);
|
||||||
when(tile.getIcon(context).getResPackage()).thenReturn("another.package");
|
when(tile.getIcon(context).getResPackage()).thenReturn("another.package");
|
||||||
|
|
||||||
|
@@ -36,6 +36,7 @@ import androidx.recyclerview.widget.ListUpdateCallback;
|
|||||||
import com.android.settings.dashboard.conditional.AirplaneModeCondition;
|
import com.android.settings.dashboard.conditional.AirplaneModeCondition;
|
||||||
import com.android.settings.dashboard.conditional.Condition;
|
import com.android.settings.dashboard.conditional.Condition;
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
|
import com.android.settingslib.drawer.CategoryKey;
|
||||||
import com.android.settingslib.drawer.DashboardCategory;
|
import com.android.settingslib.drawer.DashboardCategory;
|
||||||
import com.android.settingslib.drawer.Tile;
|
import com.android.settingslib.drawer.Tile;
|
||||||
|
|
||||||
@@ -72,7 +73,7 @@ public class DashboardDataTest {
|
|||||||
public void SetUp() {
|
public void SetUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
|
|
||||||
mDashboardCategory = new DashboardCategory();
|
mDashboardCategory = new DashboardCategory(CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
|
|
||||||
// Build suggestions
|
// Build suggestions
|
||||||
final List<Suggestion> suggestions = new ArrayList<>();
|
final List<Suggestion> suggestions = new ArrayList<>();
|
||||||
@@ -276,14 +277,16 @@ public class DashboardDataTest {
|
|||||||
/**
|
/**
|
||||||
* Test when using the
|
* Test when using the
|
||||||
* {@link com.android.settings.dashboard.DashboardData.ItemsDataDiffCallback}
|
* {@link com.android.settings.dashboard.DashboardData.ItemsDataDiffCallback}
|
||||||
* to transfer List from {@paramref baseDashboardData} to {@paramref diffDashboardData}, whether
|
* to transfer List from {@paramref baseDashboardData} to {@paramref diffDashboardData},
|
||||||
|
* whether
|
||||||
* the transform data result is equals to {@paramref testResultData}
|
* the transform data result is equals to {@paramref testResultData}
|
||||||
* <p>
|
* <p>
|
||||||
* The steps are described below:
|
* The steps are described below:
|
||||||
* 1. Calculate a {@link androidx.recyclerview.widget.DiffUtil.DiffResult} from
|
* 1. Calculate a {@link androidx.recyclerview.widget.DiffUtil.DiffResult} from
|
||||||
* {@paramref baseDashboardData} to {@paramref diffDashboardData}
|
* {@paramref baseDashboardData} to {@paramref diffDashboardData}
|
||||||
* <p>
|
* <p>
|
||||||
* 2. Dispatch the {@link androidx.recyclerview.widget.DiffUtil.DiffResult} calculated from step 1
|
* 2. Dispatch the {@link androidx.recyclerview.widget.DiffUtil.DiffResult} calculated from step
|
||||||
|
* 1
|
||||||
* into {@link ListUpdateResult}
|
* into {@link ListUpdateResult}
|
||||||
* <p>
|
* <p>
|
||||||
* 3. Get result data(a.k.a. baseResultData) from {@link ListUpdateResult} and compare it to
|
* 3. Get result data(a.k.a. baseResultData) from {@link ListUpdateResult} and compare it to
|
||||||
|
@@ -101,6 +101,7 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mContext = spy(RuntimeEnvironment.application);
|
mContext = spy(RuntimeEnvironment.application);
|
||||||
mActivityInfo = new ActivityInfo();
|
mActivityInfo = new ActivityInfo();
|
||||||
|
mActivityInfo.metaData = new Bundle();
|
||||||
doReturn(mPackageManager).when(mContext).getPackageManager();
|
doReturn(mPackageManager).when(mContext).getPackageManager();
|
||||||
when(mPackageManager.resolveActivity(any(Intent.class), anyInt()))
|
when(mPackageManager.resolveActivity(any(Intent.class), anyInt()))
|
||||||
.thenReturn(new ResolveInfo());
|
.thenReturn(new ResolveInfo());
|
||||||
@@ -116,13 +117,12 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
@Test
|
@Test
|
||||||
public void bindPreference_shouldBindAllData() {
|
public void bindPreference_shouldBindAllData() {
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final Tile tile = spy(new Tile(mActivityInfo));
|
final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE));
|
||||||
tile.title = "title";
|
tile.title = "title";
|
||||||
tile.summary = "summary";
|
tile.summary = "summary";
|
||||||
doReturn(Icon.createWithBitmap(Bitmap.createBitmap(1, 1, Bitmap.Config.RGB_565)))
|
doReturn(Icon.createWithBitmap(Bitmap.createBitmap(1, 1, Bitmap.Config.RGB_565)))
|
||||||
.when(tile).getIcon(any(Context.class));
|
.when(tile).getIcon(any(Context.class));
|
||||||
tile.metaData = new Bundle();
|
mActivityInfo.metaData.putString(SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS, "HI");
|
||||||
tile.metaData.putString(SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS, "HI");
|
|
||||||
tile.priority = 10;
|
tile.priority = 10;
|
||||||
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.SETTINGS_GESTURES,
|
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.SETTINGS_GESTURES,
|
||||||
preference, tile, "123", Preference.DEFAULT_ORDER);
|
preference, tile, "123", Preference.DEFAULT_ORDER);
|
||||||
@@ -130,16 +130,15 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
assertThat(preference.getTitle()).isEqualTo(tile.title);
|
assertThat(preference.getTitle()).isEqualTo(tile.title);
|
||||||
assertThat(preference.getSummary()).isEqualTo(tile.summary);
|
assertThat(preference.getSummary()).isEqualTo(tile.summary);
|
||||||
assertThat(preference.getIcon()).isNotNull();
|
assertThat(preference.getIcon()).isNotNull();
|
||||||
assertThat(preference.getFragment())
|
assertThat(preference.getFragment()).isEqualTo(
|
||||||
.isEqualTo(tile.metaData.getString(SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS));
|
mActivityInfo.metaData.getString(SettingsActivity.META_DATA_KEY_FRAGMENT_CLASS));
|
||||||
assertThat(preference.getOrder()).isEqualTo(-tile.priority);
|
assertThat(preference.getOrder()).isEqualTo(-tile.priority);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void bindPreference_noFragmentMetadata_shouldBindIntent() {
|
public void bindPreference_noFragmentMetadata_shouldBindIntent() {
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.metaData = new Bundle();
|
|
||||||
tile.priority = 10;
|
tile.priority = 10;
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
||||||
@@ -155,8 +154,7 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
@Test
|
@Test
|
||||||
public void bindPreference_noFragmentMetadata_shouldBindToProfileSelector() {
|
public void bindPreference_noFragmentMetadata_shouldBindToProfileSelector() {
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.metaData = new Bundle();
|
|
||||||
tile.userHandle = new ArrayList<>();
|
tile.userHandle = new ArrayList<>();
|
||||||
tile.userHandle.add(mock(UserHandle.class));
|
tile.userHandle.add(mock(UserHandle.class));
|
||||||
tile.userHandle.add(mock(UserHandle.class));
|
tile.userHandle.add(mock(UserHandle.class));
|
||||||
@@ -176,8 +174,7 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
@Test
|
@Test
|
||||||
public void bindPreference_noFragmentMetadataSingleUser_shouldBindToDirectLaunchIntent() {
|
public void bindPreference_noFragmentMetadataSingleUser_shouldBindToDirectLaunchIntent() {
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.metaData = new Bundle();
|
|
||||||
tile.userHandle = new ArrayList<>();
|
tile.userHandle = new ArrayList<>();
|
||||||
tile.userHandle.add(mock(UserHandle.class));
|
tile.userHandle.add(mock(UserHandle.class));
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
@@ -201,8 +198,7 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
@Test
|
@Test
|
||||||
public void bindPreference_toInternalSettingActivity_shouldBindToDirectLaunchIntentAndNotLog() {
|
public void bindPreference_toInternalSettingActivity_shouldBindToDirectLaunchIntentAndNotLog() {
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.metaData = new Bundle();
|
|
||||||
tile.userHandle = new ArrayList<>();
|
tile.userHandle = new ArrayList<>();
|
||||||
tile.userHandle.add(mock(UserHandle.class));
|
tile.userHandle.add(mock(UserHandle.class));
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
@@ -237,7 +233,7 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
@Test
|
@Test
|
||||||
public void bindPreference_withNullKeyNullPriority_shouldGenerateKeyAndPriority() {
|
public void bindPreference_withNullKeyNullPriority_shouldGenerateKeyAndPriority() {
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
||||||
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.VIEW_UNKNOWN,
|
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.VIEW_UNKNOWN,
|
||||||
@@ -250,7 +246,7 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
@Test
|
@Test
|
||||||
public void bindPreference_noSummary_shouldSetSummaryToPlaceholder() {
|
public void bindPreference_noSummary_shouldSetSummaryToPlaceholder() {
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
||||||
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.VIEW_UNKNOWN,
|
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.VIEW_UNKNOWN,
|
||||||
@@ -263,7 +259,7 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
@Test
|
@Test
|
||||||
public void bindPreference_hasSummary_shouldSetSummary() {
|
public void bindPreference_hasSummary_shouldSetSummary() {
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.summary = "test";
|
tile.summary = "test";
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
||||||
@@ -277,11 +273,10 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
@Config(shadows = {ShadowTileUtils.class, ShadowThreadUtils.class})
|
@Config(shadows = {ShadowTileUtils.class, ShadowThreadUtils.class})
|
||||||
public void bindPreference_hasSummaryUri_shouldLoadSummaryFromContentProvider() {
|
public void bindPreference_hasSummaryUri_shouldLoadSummaryFromContentProvider() {
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
||||||
tile.metaData = new Bundle();
|
mActivityInfo.metaData.putString(TileUtils.META_DATA_PREFERENCE_SUMMARY_URI,
|
||||||
tile.metaData.putString(TileUtils.META_DATA_PREFERENCE_SUMMARY_URI,
|
|
||||||
"content://com.android.settings/tile_summary");
|
"content://com.android.settings/tile_summary");
|
||||||
|
|
||||||
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.VIEW_UNKNOWN,
|
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.VIEW_UNKNOWN,
|
||||||
@@ -293,7 +288,7 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
@Test
|
@Test
|
||||||
public void bindPreference_withNullKeyTileKey_shouldUseTileKey() {
|
public void bindPreference_withNullKeyTileKey_shouldUseTileKey() {
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.key = "key";
|
tile.key = "key";
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
||||||
@@ -307,13 +302,12 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
@Config(shadows = {ShadowTileUtils.class, ShadowThreadUtils.class})
|
@Config(shadows = {ShadowTileUtils.class, ShadowThreadUtils.class})
|
||||||
public void bindPreference_withIconUri_shouldLoadIconFromContentProvider() {
|
public void bindPreference_withIconUri_shouldLoadIconFromContentProvider() {
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.key = "key";
|
tile.key = "key";
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
tile.intent.setComponent(
|
tile.intent.setComponent(
|
||||||
new ComponentName(RuntimeEnvironment.application.getPackageName(), "class"));
|
new ComponentName(RuntimeEnvironment.application.getPackageName(), "class"));
|
||||||
tile.metaData = new Bundle();
|
mActivityInfo.metaData.putString(TileUtils.META_DATA_PREFERENCE_ICON_URI,
|
||||||
tile.metaData.putString(TileUtils.META_DATA_PREFERENCE_ICON_URI,
|
|
||||||
"content://com.android.settings/tile_icon");
|
"content://com.android.settings/tile_icon");
|
||||||
mImpl.bindIcon(preference, tile);
|
mImpl.bindIcon(preference, tile);
|
||||||
|
|
||||||
@@ -324,8 +318,7 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
public void bindPreference_withBaseOrder_shouldOffsetPriority() {
|
public void bindPreference_withBaseOrder_shouldOffsetPriority() {
|
||||||
final int baseOrder = 100;
|
final int baseOrder = 100;
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.metaData = new Bundle();
|
|
||||||
tile.priority = 10;
|
tile.priority = 10;
|
||||||
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.VIEW_UNKNOWN,
|
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.VIEW_UNKNOWN,
|
||||||
preference, tile, "123", baseOrder);
|
preference, tile, "123", baseOrder);
|
||||||
@@ -337,9 +330,8 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
public void bindPreference_withOrderMetadata_shouldUseOrderInMetadata() {
|
public void bindPreference_withOrderMetadata_shouldUseOrderInMetadata() {
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final int testOrder = -30;
|
final int testOrder = -30;
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.metaData = new Bundle();
|
mActivityInfo.metaData.putInt(mImpl.META_DATA_KEY_ORDER, testOrder);
|
||||||
tile.metaData.putInt(mImpl.META_DATA_KEY_ORDER, testOrder);
|
|
||||||
tile.priority = 10;
|
tile.priority = 10;
|
||||||
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.VIEW_UNKNOWN,
|
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.VIEW_UNKNOWN,
|
||||||
preference, tile, "123", Preference.DEFAULT_ORDER);
|
preference, tile, "123", Preference.DEFAULT_ORDER);
|
||||||
@@ -350,9 +342,8 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
@Test
|
@Test
|
||||||
public void bindPreference_invalidOrderMetadata_shouldIgnore() {
|
public void bindPreference_invalidOrderMetadata_shouldIgnore() {
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.metaData = new Bundle();
|
mActivityInfo.metaData.putString(mImpl.META_DATA_KEY_ORDER, "hello");
|
||||||
tile.metaData.putString(mImpl.META_DATA_KEY_ORDER, "hello");
|
|
||||||
tile.priority = 10;
|
tile.priority = 10;
|
||||||
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.VIEW_UNKNOWN,
|
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.VIEW_UNKNOWN,
|
||||||
preference, tile, "123", Preference.DEFAULT_ORDER);
|
preference, tile, "123", Preference.DEFAULT_ORDER);
|
||||||
@@ -364,12 +355,11 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
public void bindPreference_withIntentActionMetadata_shouldSetLaunchAction() {
|
public void bindPreference_withIntentActionMetadata_shouldSetLaunchAction() {
|
||||||
Activity activity = Robolectric.buildActivity(Activity.class).get();
|
Activity activity = Robolectric.buildActivity(Activity.class).get();
|
||||||
final Preference preference = new Preference(RuntimeEnvironment.application);
|
final Preference preference = new Preference(RuntimeEnvironment.application);
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.key = "key";
|
tile.key = "key";
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
||||||
tile.metaData = new Bundle();
|
mActivityInfo.metaData.putString("com.android.settings.intent.action", "TestAction");
|
||||||
tile.metaData.putString("com.android.settings.intent.action", "TestAction");
|
|
||||||
tile.userHandle = null;
|
tile.userHandle = null;
|
||||||
mImpl.bindPreferenceToTile(activity, MetricsProto.MetricsEvent.SETTINGS_GESTURES,
|
mImpl.bindPreferenceToTile(activity, MetricsProto.MetricsEvent.SETTINGS_GESTURES,
|
||||||
preference, tile, "123", Preference.DEFAULT_ORDER);
|
preference, tile, "123", Preference.DEFAULT_ORDER);
|
||||||
@@ -390,12 +380,11 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
Activity activity = Robolectric.buildActivity(Activity.class).get();
|
Activity activity = Robolectric.buildActivity(Activity.class).get();
|
||||||
final ShadowApplication application = ShadowApplication.getInstance();
|
final ShadowApplication application = ShadowApplication.getInstance();
|
||||||
final Preference preference = new Preference(application.getApplicationContext());
|
final Preference preference = new Preference(application.getApplicationContext());
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.key = "key";
|
tile.key = "key";
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
||||||
tile.metaData = new Bundle();
|
mActivityInfo.metaData.putString("com.android.settings.intent.action", "TestAction");
|
||||||
tile.metaData.putString("com.android.settings.intent.action", "TestAction");
|
|
||||||
tile.userHandle = null;
|
tile.userHandle = null;
|
||||||
|
|
||||||
mImpl.bindPreferenceToTile(activity, MetricsProto.MetricsEvent.SETTINGS_GESTURES,
|
mImpl.bindPreferenceToTile(activity, MetricsProto.MetricsEvent.SETTINGS_GESTURES,
|
||||||
@@ -425,7 +414,7 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
mImpl = new DashboardFeatureProviderImpl(mActivity);
|
mImpl = new DashboardFeatureProviderImpl(mActivity);
|
||||||
ReflectionHelpers.setField(mImpl, "mCategoryManager", mCategoryManager);
|
ReflectionHelpers.setField(mImpl, "mCategoryManager", mCategoryManager);
|
||||||
when(mCategoryManager.getTilesByCategory(mActivity, CategoryKey.CATEGORY_HOMEPAGE))
|
when(mCategoryManager.getTilesByCategory(mActivity, CategoryKey.CATEGORY_HOMEPAGE))
|
||||||
.thenReturn(new DashboardCategory());
|
.thenReturn(new DashboardCategory(CategoryKey.CATEGORY_HOMEPAGE));
|
||||||
|
|
||||||
assertThat(mImpl.getPreferencesForCategory(null, null,
|
assertThat(mImpl.getPreferencesForCategory(null, null,
|
||||||
MetricsProto.MetricsEvent.SETTINGS_GESTURES, CategoryKey.CATEGORY_HOMEPAGE))
|
MetricsProto.MetricsEvent.SETTINGS_GESTURES, CategoryKey.CATEGORY_HOMEPAGE))
|
||||||
@@ -436,8 +425,8 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
public void getPreferences_hasTileForCategory_shouldReturnPrefList() {
|
public void getPreferences_hasTileForCategory_shouldReturnPrefList() {
|
||||||
mImpl = new DashboardFeatureProviderImpl(mActivity);
|
mImpl = new DashboardFeatureProviderImpl(mActivity);
|
||||||
ReflectionHelpers.setField(mImpl, "mCategoryManager", mCategoryManager);
|
ReflectionHelpers.setField(mImpl, "mCategoryManager", mCategoryManager);
|
||||||
final DashboardCategory category = new DashboardCategory();
|
final DashboardCategory category = new DashboardCategory(CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
category.addTile(new Tile(mActivityInfo));
|
category.addTile(new Tile(mActivityInfo, category.key));
|
||||||
when(mCategoryManager
|
when(mCategoryManager
|
||||||
.getTilesByCategory(any(Context.class), eq(CategoryKey.CATEGORY_HOMEPAGE)))
|
.getTilesByCategory(any(Context.class), eq(CategoryKey.CATEGORY_HOMEPAGE)))
|
||||||
.thenReturn(category);
|
.thenReturn(category);
|
||||||
@@ -467,8 +456,7 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void openTileIntent_profileSelectionDialog_shouldShow() {
|
public void openTileIntent_profileSelectionDialog_shouldShow() {
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.metaData = new Bundle();
|
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
||||||
final ArrayList<UserHandle> handles = new ArrayList<>();
|
final ArrayList<UserHandle> handles = new ArrayList<>();
|
||||||
@@ -484,9 +472,8 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void openTileIntent_profileSelectionDialog_explicitMetadataShouldShow() {
|
public void openTileIntent_profileSelectionDialog_explicitMetadataShouldShow() {
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
mActivityInfo.metaData.putString(META_DATA_KEY_PROFILE, PROFILE_ALL);
|
||||||
tile.metaData = new Bundle();
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.metaData.putString(META_DATA_KEY_PROFILE, PROFILE_ALL);
|
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
||||||
final ArrayList<UserHandle> handles = new ArrayList<>();
|
final ArrayList<UserHandle> handles = new ArrayList<>();
|
||||||
@@ -502,9 +489,8 @@ public class DashboardFeatureProviderImplTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void openTileIntent_profileSelectionDialog_shouldNotShow() {
|
public void openTileIntent_profileSelectionDialog_shouldNotShow() {
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
mActivityInfo.metaData.putString(META_DATA_KEY_PROFILE, PROFILE_PRIMARY);
|
||||||
tile.metaData = new Bundle();
|
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.metaData.putString(META_DATA_KEY_PROFILE, PROFILE_PRIMARY);
|
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
tile.intent.setComponent(new ComponentName("pkg", "class"));
|
||||||
final ArrayList<UserHandle> handles = new ArrayList<>();
|
final ArrayList<UserHandle> handles = new ArrayList<>();
|
||||||
|
@@ -17,9 +17,7 @@ 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.nullable;
|
import static org.mockito.ArgumentMatchers.nullable;
|
||||||
import static org.mockito.Mockito.doReturn;
|
|
||||||
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.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
@@ -27,11 +25,8 @@ import static org.mockito.Mockito.times;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.content.ComponentName;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.pm.ActivityInfo;
|
import android.content.pm.ActivityInfo;
|
||||||
import android.graphics.drawable.Icon;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
@@ -45,7 +40,6 @@ import com.android.settingslib.core.AbstractPreferenceController;
|
|||||||
import com.android.settingslib.core.instrumentation.VisibilityLoggerMixin;
|
import com.android.settingslib.core.instrumentation.VisibilityLoggerMixin;
|
||||||
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.drawer.TileUtils;
|
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -74,8 +68,8 @@ public class DashboardFragmentTest {
|
|||||||
mContext = spy(RuntimeEnvironment.application);
|
mContext = spy(RuntimeEnvironment.application);
|
||||||
mActivityInfo = new ActivityInfo();
|
mActivityInfo = new ActivityInfo();
|
||||||
mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
|
mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
|
||||||
mDashboardCategory = new DashboardCategory();
|
mDashboardCategory = new DashboardCategory("key");
|
||||||
mDashboardCategory.addTile(new Tile(mActivityInfo));
|
mDashboardCategory.addTile(new Tile(mActivityInfo, mDashboardCategory.key));
|
||||||
mTestFragment = new TestFragment(RuntimeEnvironment.application);
|
mTestFragment = new TestFragment(RuntimeEnvironment.application);
|
||||||
when(mFakeFeatureFactory.dashboardFeatureProvider
|
when(mFakeFeatureFactory.dashboardFeatureProvider
|
||||||
.getTilesForCategory(nullable(String.class)))
|
.getTilesForCategory(nullable(String.class)))
|
||||||
@@ -181,42 +175,6 @@ public class DashboardFragmentTest {
|
|||||||
verify(mockController2).getPreferenceKey();
|
verify(mockController2).getPreferenceKey();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void tintTileIcon_hasMetadata_shouldReturnIconTintableMetadata() {
|
|
||||||
final Tile tile = spy(new Tile(mActivityInfo));
|
|
||||||
doReturn(mock(Icon.class)).when(tile).getIcon(any(Context.class));
|
|
||||||
final Bundle metaData = new Bundle();
|
|
||||||
tile.metaData = metaData;
|
|
||||||
|
|
||||||
metaData.putBoolean(TileUtils.META_DATA_PREFERENCE_ICON_TINTABLE, false);
|
|
||||||
assertThat(mTestFragment.tintTileIcon(tile)).isFalse();
|
|
||||||
|
|
||||||
metaData.putBoolean(TileUtils.META_DATA_PREFERENCE_ICON_TINTABLE, true);
|
|
||||||
assertThat(mTestFragment.tintTileIcon(tile)).isTrue();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void tintTileIcon_noIcon_shouldReturnFalse() {
|
|
||||||
final Tile tile = new Tile(mActivityInfo);
|
|
||||||
tile.metaData = new Bundle();
|
|
||||||
|
|
||||||
assertThat(mTestFragment.tintTileIcon(tile)).isFalse();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void tintTileIcon_noMetadata_shouldReturnPackageNameCheck() {
|
|
||||||
final Tile tile = spy(new Tile(mActivityInfo));
|
|
||||||
doReturn(mock(Icon.class)).when(tile).getIcon(any(Context.class));
|
|
||||||
final Intent intent = new Intent();
|
|
||||||
tile.intent = intent;
|
|
||||||
intent.setComponent(
|
|
||||||
new ComponentName(RuntimeEnvironment.application.getPackageName(), "TestClass"));
|
|
||||||
assertThat(mTestFragment.tintTileIcon(tile)).isFalse();
|
|
||||||
|
|
||||||
intent.setComponent(new ComponentName("OtherPackage", "TestClass"));
|
|
||||||
assertThat(mTestFragment.tintTileIcon(tile)).isTrue();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class TestPreferenceController extends AbstractPreferenceController
|
public static class TestPreferenceController extends AbstractPreferenceController
|
||||||
implements PreferenceControllerMixin {
|
implements PreferenceControllerMixin {
|
||||||
|
|
||||||
|
@@ -25,6 +25,7 @@ import android.widget.TextView;
|
|||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
|
import com.android.settingslib.drawer.CategoryKey;
|
||||||
import com.android.settingslib.drawer.Tile;
|
import com.android.settingslib.drawer.Tile;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -42,7 +43,7 @@ public class DashboardItemAnimatorTest {
|
|||||||
public void SetUp() {
|
public void SetUp() {
|
||||||
mDashboardItemAnimator = new DashboardItemAnimator();
|
mDashboardItemAnimator = new DashboardItemAnimator();
|
||||||
mViewHolder = new ViewHolder(new TextView(RuntimeEnvironment.application));
|
mViewHolder = new ViewHolder(new TextView(RuntimeEnvironment.application));
|
||||||
mViewHolder.itemView.setTag(new Tile(new ActivityInfo()));
|
mViewHolder.itemView.setTag(new Tile(new ActivityInfo(), CategoryKey.CATEGORY_HOMEPAGE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@@ -53,7 +53,7 @@ public class SummaryLoaderTest {
|
|||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
||||||
|
|
||||||
mTile = new Tile(new ActivityInfo());
|
mTile = new Tile(new ActivityInfo(), CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
mTile.summary = SUMMARY_1;
|
mTile.summary = SUMMARY_1;
|
||||||
mCallbackInvoked = false;
|
mCallbackInvoked = false;
|
||||||
|
|
||||||
@@ -85,8 +85,8 @@ public class SummaryLoaderTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testUpdateSummaryToCache_hasCache_shouldUpdate() {
|
public void testUpdateSummaryToCache_hasCache_shouldUpdate() {
|
||||||
final String testSummary = "test_summary";
|
final String testSummary = "test_summary";
|
||||||
final DashboardCategory category = new DashboardCategory();
|
final DashboardCategory category = new DashboardCategory(CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
final Tile tile = new Tile(new ActivityInfo());
|
final Tile tile = new Tile(new ActivityInfo(), category.key);
|
||||||
tile.key = "123";
|
tile.key = "123";
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
category.addTile(tile);
|
category.addTile(tile);
|
||||||
|
@@ -31,6 +31,7 @@ import android.os.UserHandle;
|
|||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
|
import com.android.settingslib.drawer.CategoryKey;
|
||||||
import com.android.settingslib.drawer.Tile;
|
import com.android.settingslib.drawer.Tile;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -61,7 +62,7 @@ public class ProfileSelectDialogTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateUserHandlesIfNeeded_Normal() {
|
public void updateUserHandlesIfNeeded_Normal() {
|
||||||
final Tile tile = new Tile(new ActivityInfo());
|
final Tile tile = new Tile(new ActivityInfo(), CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
tile.userHandle.add(NORMAL_USER);
|
tile.userHandle.add(NORMAL_USER);
|
||||||
|
|
||||||
@@ -74,7 +75,7 @@ public class ProfileSelectDialogTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateUserHandlesIfNeeded_Remove() {
|
public void updateUserHandlesIfNeeded_Remove() {
|
||||||
final Tile tile = new Tile(new ActivityInfo());
|
final Tile tile = new Tile(new ActivityInfo(), CategoryKey.CATEGORY_HOMEPAGE);
|
||||||
tile.intent = new Intent();
|
tile.intent = new Intent();
|
||||||
tile.userHandle.add(REMOVED_USER);
|
tile.userHandle.add(REMOVED_USER);
|
||||||
tile.userHandle.add(NORMAL_USER);
|
tile.userHandle.add(NORMAL_USER);
|
||||||
|
@@ -36,6 +36,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.settings.testutils.shadow.ShadowSecureSettings;
|
import com.android.settings.testutils.shadow.ShadowSecureSettings;
|
||||||
|
import com.android.settingslib.drawer.CategoryKey;
|
||||||
import com.android.settingslib.drawer.Tile;
|
import com.android.settingslib.drawer.Tile;
|
||||||
import com.android.settingslib.suggestions.SuggestionControllerMixinCompat;
|
import com.android.settingslib.suggestions.SuggestionControllerMixinCompat;
|
||||||
|
|
||||||
@@ -144,13 +145,13 @@ public class SuggestionFeatureProviderImplTest {
|
|||||||
@Test
|
@Test
|
||||||
public void filterExclusiveSuggestions_shouldOnlyKeepFirst3() {
|
public void filterExclusiveSuggestions_shouldOnlyKeepFirst3() {
|
||||||
final List<Tile> suggestions = new ArrayList<>();
|
final List<Tile> suggestions = new ArrayList<>();
|
||||||
suggestions.add(new Tile(mActivityInfo));
|
suggestions.add(new Tile(mActivityInfo, CategoryKey.CATEGORY_APPS));
|
||||||
suggestions.add(new Tile(mActivityInfo));
|
suggestions.add(new Tile(mActivityInfo, CategoryKey.CATEGORY_APPS));
|
||||||
suggestions.add(new Tile(mActivityInfo));
|
suggestions.add(new Tile(mActivityInfo, CategoryKey.CATEGORY_APPS));
|
||||||
suggestions.add(new Tile(mActivityInfo));
|
suggestions.add(new Tile(mActivityInfo, CategoryKey.CATEGORY_APPS));
|
||||||
suggestions.add(new Tile(mActivityInfo));
|
suggestions.add(new Tile(mActivityInfo, CategoryKey.CATEGORY_APPS));
|
||||||
suggestions.add(new Tile(mActivityInfo));
|
suggestions.add(new Tile(mActivityInfo, CategoryKey.CATEGORY_APPS));
|
||||||
suggestions.add(new Tile(mActivityInfo));
|
suggestions.add(new Tile(mActivityInfo, CategoryKey.CATEGORY_APPS));
|
||||||
|
|
||||||
mProvider.filterExclusiveSuggestions(suggestions);
|
mProvider.filterExclusiveSuggestions(suggestions);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user