Support changes to SuggestionParser

Change-Id: I002e10cfe2a058f934d2c6218c88c2588654733f
diff --git a/src/com/android/settings/dashboard/DashboardAdapter.java b/src/com/android/settings/dashboard/DashboardAdapter.java
index b564a27..0d92c62 100644
--- a/src/com/android/settings/dashboard/DashboardAdapter.java
+++ b/src/com/android/settings/dashboard/DashboardAdapter.java
@@ -33,6 +33,7 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.dashboard.conditional.Condition;
 import com.android.settings.dashboard.conditional.ConditionAdapterUtils;
+import com.android.settingslib.SuggestionParser;
 import com.android.settingslib.drawer.DashboardCategory;
 import com.android.settingslib.drawer.Tile;
 
@@ -66,6 +67,7 @@
     private int mSuggestionMode = SUGGESTION_MODE_DEFAULT;
 
     private Condition mExpandedCondition = null;
+    private SuggestionParser mSuggestionParser;
 
     public DashboardAdapter(Context context) {
         mContext = context;
@@ -73,8 +75,9 @@
         setHasStableIds(true);
     }
 
-    public void setSuggestions(List<Tile> suggestions) {
-        mSuggestions = suggestions;
+    public void setSuggestions(SuggestionParser suggestionParser) {
+        mSuggestions = suggestionParser.getSuggestions();
+        mSuggestionParser = suggestionParser;
         recountItems();
     }
 
@@ -235,10 +238,12 @@
                 new MenuItem.OnMenuItemClickListener() {
             @Override
             public boolean onMenuItemClick(MenuItem item) {
-                mContext.getPackageManager().setComponentEnabledSetting(
-                        suggestion.intent.getComponent(),
-                        PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
-                        PackageManager.DONT_KILL_APP);
+                if (mSuggestionParser.dismissSuggestion(suggestion)) {
+                    mContext.getPackageManager().setComponentEnabledSetting(
+                            suggestion.intent.getComponent(),
+                            PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
+                            PackageManager.DONT_KILL_APP);
+                }
                 mSuggestions.remove(suggestion);
                 recountItems();
                 return true;
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index cbb1549..8dffffa 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.dashboard;
 
+import android.content.Context;
 import android.os.Bundle;
 import android.support.v7.widget.LinearLayoutManager;
 import android.util.Log;
@@ -55,6 +56,8 @@
             Settings.StorageSettingsActivity.class.getName(),
     };
 
+    private static final String SUGGESTIONS = "suggestions";
+
     private FocusRecyclerView mDashboard;
     private DashboardAdapter mAdapter;
     private SummaryLoader mSummaryLoader;
@@ -77,8 +80,10 @@
         setHasOptionsMenu(true);
         if (DEBUG_TIMING) Log.d(TAG, "onCreate took " + (System.currentTimeMillis() - startTime)
                 + " ms");
-        mConditionManager = ConditionManager.get(getContext());
-        mSuggestionParser = new SuggestionParser(getContext(), R.xml.suggestion_ordering);
+        Context context = getContext();
+        mConditionManager = ConditionManager.get(context);
+        mSuggestionParser = new SuggestionParser(context,
+                context.getSharedPreferences(SUGGESTIONS, 0), R.xml.suggestion_ordering);
     }
 
     @Override
@@ -138,7 +143,7 @@
         mDashboard.setListener(this);
         mAdapter = new DashboardAdapter(getContext());
         mAdapter.setConditions(mConditionManager.getConditions());
-        mAdapter.setSuggestions(mSuggestionParser.getSuggestions());
+        mAdapter.setSuggestions(mSuggestionParser);
         mSummaryLoader.setAdapter(mAdapter);
         ConditionAdapterUtils.addDismiss(mDashboard);