Loading res/values/config.xml +6 −0 Original line number Diff line number Diff line Loading @@ -473,4 +473,10 @@ <!-- Authority of advanced device battery prediction --> <string name="config_battery_prediction_authority" translatable="false"></string> <!-- Packages for overriding tile positions on the homepage --> <string-array name="config_homepage_tile_packages" translatable="false"/> <!-- Orders for overriding tile positions on the homepage --> <integer-array name="config_homepage_tile_orders"/> </resources> src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +24 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,9 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { pref.setOrder(order + baseOrder); } } overrideTilePosition(tile, pref); return outObservers.isEmpty() ? null : outObservers; } Loading Loading @@ -457,4 +460,25 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { } return eligibleUsers; } private void overrideTilePosition(Tile tile, Preference pref) { if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.SILKY_HOME) && TextUtils.equals(tile.getCategory(), CategoryKey.CATEGORY_HOMEPAGE)) { final String[] homepageTilePackages = mContext.getResources().getStringArray( R.array.config_homepage_tile_packages); final int[] homepageTileOrders = mContext.getResources().getIntArray( R.array.config_homepage_tile_orders); if (homepageTilePackages.length == 0 || homepageTilePackages.length != homepageTileOrders.length) { return; } for (int i = 0; i < homepageTilePackages.length; i++) { if (TextUtils.equals(tile.getPackageName(), homepageTilePackages[i])) { pref.setOrder(homepageTileOrders[i]); return; } } } } } tests/robotests/res/values-mcc999/config.xml +10 −0 Original line number Diff line number Diff line Loading @@ -100,4 +100,14 @@ <!-- Uri to query non-public Slice Uris. --> <string name="config_non_public_slice_query_uri" translatable="false">content://com.android.settings.slices/test</string> <!-- Packages for overriding tile positions on the homepage --> <string-array name="config_homepage_tile_packages" translatable="false"> <item>com.android.settings</item> </string-array> <!-- Orders for overriding tile positions on the homepage --> <integer-array name="config_homepage_tile_orders"> <item>100</item> </integer-array> </resources> tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -707,4 +707,18 @@ public class DashboardFeatureProviderImplTest { assertThat(preference.getSummary()).isEqualTo( mContext.getText(R.string.about_settings_summary)); } @Test @Config(qualifiers = "mcc999") public void bindPreference_specificHomepageTile_shouldOverridePosition() { FeatureFlagUtils.setEnabled(mContext, FeatureFlags.SILKY_HOME, true); final Preference preference = new Preference(RuntimeEnvironment.application); final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, preference, tile, null /*key */, Preference.DEFAULT_ORDER); assertThat(preference.getOrder()).isEqualTo(100); } } Loading
res/values/config.xml +6 −0 Original line number Diff line number Diff line Loading @@ -473,4 +473,10 @@ <!-- Authority of advanced device battery prediction --> <string name="config_battery_prediction_authority" translatable="false"></string> <!-- Packages for overriding tile positions on the homepage --> <string-array name="config_homepage_tile_packages" translatable="false"/> <!-- Orders for overriding tile positions on the homepage --> <integer-array name="config_homepage_tile_orders"/> </resources>
src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +24 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,9 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { pref.setOrder(order + baseOrder); } } overrideTilePosition(tile, pref); return outObservers.isEmpty() ? null : outObservers; } Loading Loading @@ -457,4 +460,25 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { } return eligibleUsers; } private void overrideTilePosition(Tile tile, Preference pref) { if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.SILKY_HOME) && TextUtils.equals(tile.getCategory(), CategoryKey.CATEGORY_HOMEPAGE)) { final String[] homepageTilePackages = mContext.getResources().getStringArray( R.array.config_homepage_tile_packages); final int[] homepageTileOrders = mContext.getResources().getIntArray( R.array.config_homepage_tile_orders); if (homepageTilePackages.length == 0 || homepageTilePackages.length != homepageTileOrders.length) { return; } for (int i = 0; i < homepageTilePackages.length; i++) { if (TextUtils.equals(tile.getPackageName(), homepageTilePackages[i])) { pref.setOrder(homepageTileOrders[i]); return; } } } } }
tests/robotests/res/values-mcc999/config.xml +10 −0 Original line number Diff line number Diff line Loading @@ -100,4 +100,14 @@ <!-- Uri to query non-public Slice Uris. --> <string name="config_non_public_slice_query_uri" translatable="false">content://com.android.settings.slices/test</string> <!-- Packages for overriding tile positions on the homepage --> <string-array name="config_homepage_tile_packages" translatable="false"> <item>com.android.settings</item> </string-array> <!-- Orders for overriding tile positions on the homepage --> <integer-array name="config_homepage_tile_orders"> <item>100</item> </integer-array> </resources>
tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -707,4 +707,18 @@ public class DashboardFeatureProviderImplTest { assertThat(preference.getSummary()).isEqualTo( mContext.getText(R.string.about_settings_summary)); } @Test @Config(qualifiers = "mcc999") public void bindPreference_specificHomepageTile_shouldOverridePosition() { FeatureFlagUtils.setEnabled(mContext, FeatureFlags.SILKY_HOME, true); final Preference preference = new Preference(RuntimeEnvironment.application); final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE); mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon, MetricsEvent.VIEW_UNKNOWN, preference, tile, null /*key */, Preference.DEFAULT_ORDER); assertThat(preference.getOrder()).isEqualTo(100); } }