Add suggestions to settings

Use an XML to define the categories that Settings will look for,
and surface enabled activities under those categories as suggestions.

When clicked on the activity will be started for result.  If the result
is not cancelled, then the operation is assumed successful and the
suggestion is disabled.  Users can also use an overflow -> remove
flow to get rid of unwanted suggestions.

Change-Id: I767abf8efe103af0509bc6b6b55888ae82643512
This commit is contained in:
Jason Monk
2016-01-07 16:25:34 -05:00
parent c24d360328
commit d4f03ec86f
14 changed files with 340 additions and 56 deletions

View File

@@ -33,6 +33,7 @@ import com.android.settings.SettingsActivity;
import com.android.settings.dashboard.conditional.ConditionAdapterUtils;
import com.android.settings.dashboard.conditional.ConditionManager;
import com.android.settings.dashboard.conditional.FocusRecyclerView;
import com.android.settingslib.SuggestionParser;
import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.SettingsDrawerActivity;
@@ -58,6 +59,7 @@ public class DashboardSummary extends InstrumentedFragment
private DashboardAdapter mAdapter;
private SummaryLoader mSummaryLoader;
private ConditionManager mConditionManager;
private SuggestionParser mSuggestionParser;
@Override
protected int getMetricsCategory() {
@@ -76,6 +78,7 @@ public class DashboardSummary extends InstrumentedFragment
if (DEBUG_TIMING) Log.d(TAG, "onCreate took " + (System.currentTimeMillis() - startTime)
+ " ms");
mConditionManager = ConditionManager.get(getContext());
mSuggestionParser = new SuggestionParser(getContext(), R.xml.suggestion_ordering);
}
@Override
@@ -135,6 +138,7 @@ public class DashboardSummary extends InstrumentedFragment
mDashboard.setListener(this);
mAdapter = new DashboardAdapter(getContext());
mAdapter.setConditions(mConditionManager.getConditions());
mAdapter.setSuggestions(mSuggestionParser.getSuggestions());
mSummaryLoader.setAdapter(mAdapter);
ConditionAdapterUtils.addDismiss(mDashboard);