Loading res/values/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -363,4 +363,7 @@ <!-- Grayscale settings intent --> <string name="config_grayscale_settings_intent" translate="false"></string> <!-- List containing the injected tile keys which are suppressed. --> <string-array name="config_suppress_injected_tile_keys" translatable="false"/> </resources> src/com/android/settings/accounts/AccountDetailDashboardFragment.java +3 −0 Original line number Diff line number Diff line Loading @@ -150,6 +150,9 @@ public class AccountDetailDashboardFragment extends DashboardFragment { @Override protected boolean displayTile(Tile tile) { if (!super.displayTile(tile)) { return false; } if (mAccountType == null) { return false; } Loading src/com/android/settings/dashboard/DashboardFragment.java +11 −0 Original line number Diff line number Diff line Loading @@ -24,12 +24,14 @@ import android.util.ArrayMap; import android.util.ArraySet; import android.util.Log; import androidx.annotation.CallSuper; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.core.BasePreferenceController; import com.android.settings.core.PreferenceControllerListHelper; Loading @@ -43,6 +45,7 @@ import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.Tile; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.Map; Loading @@ -65,12 +68,15 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment private DashboardTilePlaceholderPreferenceController mPlaceholderPreferenceController; private boolean mListeningToCategoryChange; private SummaryLoader mSummaryLoader; private List<String> mSuppressInjectedTileKeys; @VisibleForTesting UiBlockerController mBlockerController; @Override public void onAttach(Context context) { super.onAttach(context); mSuppressInjectedTileKeys = Arrays.asList(context.getResources().getStringArray( R.array.config_suppress_injected_tile_keys)); mDashboardFeatureProvider = FeatureFactory.getFactory(context). getDashboardFeatureProvider(context); final List<AbstractPreferenceController> controllers = new ArrayList<>(); Loading Loading @@ -283,7 +289,12 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment /** * Returns true if this tile should be displayed */ @CallSuper protected boolean displayTile(Tile tile) { if (mSuppressInjectedTileKeys != null && tile.hasKey()) { // For suppressing injected tiles for OEMs. return !mSuppressInjectedTileKeys.contains(tile.getKey(getContext())); } return true; } Loading tests/robotests/res/values-mcc999/config.xml +5 −0 Original line number Diff line number Diff line Loading @@ -88,4 +88,9 @@ <!-- Grayscale settings intent --> <string name="config_grayscale_settings_intent" translate="false">intent:#Intent;action=test.test;end</string> <!-- List containing the injected tile keys which are suppressed. --> <string-array name="config_suppress_injected_tile_keys" translatable="false"> <item>injected_tile_key</item> </string-array> </resources> tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java +18 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.dashboard; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.DASHBOARD_CONTAINER; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_KEYHINT; import static com.google.common.truth.Truth.assertThat; Loading Loading @@ -53,6 +54,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.util.ReflectionHelpers; import java.util.ArrayList; Loading @@ -79,6 +81,8 @@ public class DashboardFragmentTest { mActivityInfo = new ActivityInfo(); mActivityInfo.packageName = "pkg"; mActivityInfo.name = "class"; mActivityInfo.metaData = new Bundle(); mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "injected_tile_key"); mFakeFeatureFactory = FakeFeatureFactory.setupForTest(); mDashboardCategory = new DashboardCategory("key"); mDashboardCategory.addTile(new Tile(mActivityInfo, mDashboardCategory.key)); Loading Loading @@ -143,6 +147,20 @@ public class DashboardFragmentTest { verify(mTestFragment.mScreen, never()).addPreference(nullable(Preference.class)); } @Test @Config(qualifiers = "mcc999") public void displayTilesAsPreference_shouldNotAddSuppressedTiles() { when(mFakeFeatureFactory.dashboardFeatureProvider .getTilesForCategory(nullable(String.class))) .thenReturn(mDashboardCategory); when(mFakeFeatureFactory.dashboardFeatureProvider .getDashboardKeyForTile(nullable(Tile.class))) .thenReturn("test_key"); mTestFragment.onCreatePreferences(new Bundle(), "rootKey"); verify(mTestFragment.mScreen, never()).addPreference(nullable(Preference.class)); } @Test public void onAttach_shouldCreatePlaceholderPreferenceController() { final AbstractPreferenceController controller = mTestFragment.use( Loading Loading
res/values/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -363,4 +363,7 @@ <!-- Grayscale settings intent --> <string name="config_grayscale_settings_intent" translate="false"></string> <!-- List containing the injected tile keys which are suppressed. --> <string-array name="config_suppress_injected_tile_keys" translatable="false"/> </resources>
src/com/android/settings/accounts/AccountDetailDashboardFragment.java +3 −0 Original line number Diff line number Diff line Loading @@ -150,6 +150,9 @@ public class AccountDetailDashboardFragment extends DashboardFragment { @Override protected boolean displayTile(Tile tile) { if (!super.displayTile(tile)) { return false; } if (mAccountType == null) { return false; } Loading
src/com/android/settings/dashboard/DashboardFragment.java +11 −0 Original line number Diff line number Diff line Loading @@ -24,12 +24,14 @@ import android.util.ArrayMap; import android.util.ArraySet; import android.util.Log; import androidx.annotation.CallSuper; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.core.BasePreferenceController; import com.android.settings.core.PreferenceControllerListHelper; Loading @@ -43,6 +45,7 @@ import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.Tile; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.Map; Loading @@ -65,12 +68,15 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment private DashboardTilePlaceholderPreferenceController mPlaceholderPreferenceController; private boolean mListeningToCategoryChange; private SummaryLoader mSummaryLoader; private List<String> mSuppressInjectedTileKeys; @VisibleForTesting UiBlockerController mBlockerController; @Override public void onAttach(Context context) { super.onAttach(context); mSuppressInjectedTileKeys = Arrays.asList(context.getResources().getStringArray( R.array.config_suppress_injected_tile_keys)); mDashboardFeatureProvider = FeatureFactory.getFactory(context). getDashboardFeatureProvider(context); final List<AbstractPreferenceController> controllers = new ArrayList<>(); Loading Loading @@ -283,7 +289,12 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment /** * Returns true if this tile should be displayed */ @CallSuper protected boolean displayTile(Tile tile) { if (mSuppressInjectedTileKeys != null && tile.hasKey()) { // For suppressing injected tiles for OEMs. return !mSuppressInjectedTileKeys.contains(tile.getKey(getContext())); } return true; } Loading
tests/robotests/res/values-mcc999/config.xml +5 −0 Original line number Diff line number Diff line Loading @@ -88,4 +88,9 @@ <!-- Grayscale settings intent --> <string name="config_grayscale_settings_intent" translate="false">intent:#Intent;action=test.test;end</string> <!-- List containing the injected tile keys which are suppressed. --> <string-array name="config_suppress_injected_tile_keys" translatable="false"> <item>injected_tile_key</item> </string-array> </resources>
tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java +18 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.dashboard; import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.DASHBOARD_CONTAINER; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_KEYHINT; import static com.google.common.truth.Truth.assertThat; Loading Loading @@ -53,6 +54,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.util.ReflectionHelpers; import java.util.ArrayList; Loading @@ -79,6 +81,8 @@ public class DashboardFragmentTest { mActivityInfo = new ActivityInfo(); mActivityInfo.packageName = "pkg"; mActivityInfo.name = "class"; mActivityInfo.metaData = new Bundle(); mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "injected_tile_key"); mFakeFeatureFactory = FakeFeatureFactory.setupForTest(); mDashboardCategory = new DashboardCategory("key"); mDashboardCategory.addTile(new Tile(mActivityInfo, mDashboardCategory.key)); Loading Loading @@ -143,6 +147,20 @@ public class DashboardFragmentTest { verify(mTestFragment.mScreen, never()).addPreference(nullable(Preference.class)); } @Test @Config(qualifiers = "mcc999") public void displayTilesAsPreference_shouldNotAddSuppressedTiles() { when(mFakeFeatureFactory.dashboardFeatureProvider .getTilesForCategory(nullable(String.class))) .thenReturn(mDashboardCategory); when(mFakeFeatureFactory.dashboardFeatureProvider .getDashboardKeyForTile(nullable(Tile.class))) .thenReturn("test_key"); mTestFragment.onCreatePreferences(new Bundle(), "rootKey"); verify(mTestFragment.mScreen, never()).addPreference(nullable(Preference.class)); } @Test public void onAttach_shouldCreatePlaceholderPreferenceController() { final AbstractPreferenceController controller = mTestFragment.use( Loading