Add dynamic summaries to Slices

Summary on slices will now determined by checking that
summaries in the following order are valid:
1) SliceData summary
2) Preference Controller summary
3) SliceData screen title

Valid is currently defined as:
- Not empty / null
- Not whitespace
- Not sumamry placeholder

Fixes: 71640678
Test: robotests
Change-Id: I5e699e8566ece80742d311617b7dc4e9a9bda8cf
This commit is contained in:
Matthew Fritze
2018-01-10 10:13:00 -08:00
parent 844145686c
commit 82254b08fd
4 changed files with 109 additions and 18 deletions

View File

@@ -71,7 +71,7 @@ public class SliceBroadcastReceiver extends BroadcastReceiver {
throw new IllegalStateException("No key passed to Intent for toggle controller");
}
BasePreferenceController controller = getBasePreferenceController(context, key);
final BasePreferenceController controller = getPreferenceController(context, key);
if (!(controller instanceof TogglePreferenceController)) {
throw new IllegalStateException("Toggle action passed for a non-toggle key: " + key);
@@ -79,12 +79,12 @@ public class SliceBroadcastReceiver extends BroadcastReceiver {
// TODO post context.getContentResolver().notifyChanged(uri, null) in the Toggle controller
// so that it's automatically broadcast to any slice.
TogglePreferenceController toggleController = (TogglePreferenceController) controller;
boolean currentValue = toggleController.isChecked();
final TogglePreferenceController toggleController = (TogglePreferenceController) controller;
final boolean currentValue = toggleController.isChecked();
toggleController.setChecked(!currentValue);
}
private BasePreferenceController getBasePreferenceController(Context context, String key) {
private BasePreferenceController getPreferenceController(Context context, String key) {
final SlicesDatabaseAccessor accessor = new SlicesDatabaseAccessor(context);
final SliceData sliceData = accessor.getSliceDataFromKey(key);
return SliceBuilderUtils.getPreferenceController(context, sliceData);