Override homepage tile positions for silky home

Create configs to record the packages and orders of homepage tiles and
then according to these data to override homepage tile positions.

Bug: 168166015
Test: visual with turning on/off silky home
Change-Id: I3fcb54ac531a124101084bb40064b5a7227bf311
This commit is contained in:
Yanting Yang
2021-01-12 13:41:04 +08:00
parent bfcb1dc2c4
commit b3381de206
4 changed files with 54 additions and 0 deletions

View File

@@ -184,6 +184,9 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
pref.setOrder(order + baseOrder);
}
}
overrideTilePosition(tile, pref);
return outObservers.isEmpty() ? null : outObservers;
}
@@ -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;
}
}
}
}
}