Insert dynamic dashboard tiles into optional placeholders
Insteads of inserting tile onto screen using absolute priority values, now each page can have a placeholder preference, and at run time we will add dynamic dashboard tiles to placeholder's place. Bug: 32827787 Test: RunSettingsRoboTests Change-Id: I1fe9e11dce4eb6fb4a9b56af05a2b8e5cdae00d2
This commit is contained in:
@@ -80,7 +80,8 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bindPreferenceToTile(Activity activity, Preference pref, Tile tile, String key) {
|
||||
public void bindPreferenceToTile(Activity activity, Preference pref, Tile tile, String key,
|
||||
int baseOrder) {
|
||||
pref.setTitle(tile.title);
|
||||
if (!TextUtils.isEmpty(key)) {
|
||||
pref.setKey(key);
|
||||
@@ -112,11 +113,21 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
||||
return true;
|
||||
});
|
||||
}
|
||||
final String skipOffsetPackageName = activity.getPackageName();
|
||||
// Use negated priority for order, because tile priority is based on intent-filter
|
||||
// (larger value has higher priority). However pref order defines smaller value has
|
||||
// higher priority.
|
||||
if (tile.priority != 0) {
|
||||
pref.setOrder(-tile.priority);
|
||||
boolean shouldSkipBaseOrderOffset = false;
|
||||
if (tile.intent != null) {
|
||||
shouldSkipBaseOrderOffset = TextUtils.equals(
|
||||
skipOffsetPackageName, tile.intent.getComponent().getPackageName());
|
||||
}
|
||||
if (shouldSkipBaseOrderOffset || baseOrder == Preference.DEFAULT_ORDER) {
|
||||
pref.setOrder(-tile.priority);
|
||||
} else {
|
||||
pref.setOrder(-tile.priority + baseOrder);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user