Fixed resetting of webrefiner

- WebRefiner site specific settings were not properly cleared
  on browser reset to default

Change-Id: I957111763b7b86eb91dc75744ec21deea0425bd5
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index cde500c..fef0b44 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -51,6 +51,7 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.LinkedList;
+import java.util.List;
 import java.util.Set;
 
 import org.codeaurora.swe.AutoFillProfile;
@@ -591,11 +592,22 @@
     }
 
     public void resetDefaultPreferences() {
-        mPrefs.edit()
-                .clear()
-                .apply();
+        WebRefiner webRefiner = WebRefiner.getInstance();
+        if (webRefiner != null) {
+            List<String> webrefiner_list = PermissionsServiceFactory.getOriginsForPermission(
+                    PermissionsServiceFactory.PermissionType.WEBREFINER);
+            if (!webrefiner_list.isEmpty()) {
+                String[] origins = webrefiner_list.toArray(new String[webrefiner_list.size()]);
+                webRefiner.useDefaultPermissionForOrigins(origins);
+            }
+        }
+
+        PermissionsServiceFactory.resetDefaultPermissions();
+        mPrefs.edit().clear().apply();
+
         resetCachedValues();
-        if (WebRefiner.getInstance() != null) {
+
+        if (webRefiner != null) {
             mPrefs.edit().putBoolean(PREF_WEB_REFINER, true).apply();
         } else {
             mPrefs.edit().putBoolean(PREF_WEB_REFINER, false).apply();
diff --git a/src/com/android/browser/BrowserYesNoPreference.java b/src/com/android/browser/BrowserYesNoPreference.java
index 37e8431..d73ea08 100644
--- a/src/com/android/browser/BrowserYesNoPreference.java
+++ b/src/com/android/browser/BrowserYesNoPreference.java
@@ -28,7 +28,7 @@
 import android.view.ViewGroup;
 import android.widget.Button;
 
-class BrowserYesNoPreference extends DialogPreference {
+public class BrowserYesNoPreference extends DialogPreference {
     private SharedPreferences mPrefs;
     private Context mContext;
     private String mNeutralBtnTxt;
@@ -36,6 +36,10 @@
     private String mNegativeBtnTxt;
     private boolean mNeutralBtnClicked = false;
 
+    public static final int CANCEL_BTN = 0;
+    public static final int OK_BTN = 1;
+    public static final int OTHER_BTN = 2;
+
     // This is the constructor called by the inflater
     public BrowserYesNoPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -154,8 +158,8 @@
 
         if (callChangeListener(result)) {
             setEnabled(false);
-            BrowserSettings settings = BrowserSettings.getInstance();
             if (PreferenceKeys.PREF_CLEAR_SELECTED_DATA.equals(getKey())) {
+                BrowserSettings settings = BrowserSettings.getInstance();
                 if (mPrefs.getBoolean(PreferenceKeys.PREF_PRIVACY_CLEAR_CACHE, false)) {
                     settings.clearCache();
                     settings.clearDatabases();
@@ -176,23 +180,8 @@
                         false)) {
                     settings.clearLocationAccess();
                 }
-
-                setEnabled(true);
-            } else if (PreferenceKeys.PREF_RESET_DEFAULT_PREFERENCES.equals(
-                    getKey())) {
-                if (mNeutralBtnClicked) {
-                    settings.clearCache();
-                    settings.clearDatabases();
-                    settings.clearCookies();
-                    settings.clearHistory();
-                    settings.clearFormData();
-                    settings.clearPasswords();
-                    settings.clearLocationAccess();
-                }
-
-                settings.resetDefaultPreferences();
-                setEnabled(true);
             }
+            setEnabled(true);
         }
     }
 }
diff --git a/src/com/android/browser/preferences/AdvancedPreferencesFragment.java b/src/com/android/browser/preferences/AdvancedPreferencesFragment.java
index 00977f6..3d98894 100644
--- a/src/com/android/browser/preferences/AdvancedPreferencesFragment.java
+++ b/src/com/android/browser/preferences/AdvancedPreferencesFragment.java
@@ -33,12 +33,11 @@
 import com.android.browser.BaseUi;
 import com.android.browser.BrowserActivity;
 import com.android.browser.BrowserSettings;
+import com.android.browser.BrowserYesNoPreference;
 import com.android.browser.DownloadHandler;
 import com.android.browser.PreferenceKeys;
 import com.android.browser.R;
 
-import org.codeaurora.swe.PermissionsServiceFactory;
-
 public class AdvancedPreferencesFragment
         implements Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener {
 
@@ -157,8 +156,19 @@
 
         else if (pref.getKey().equals(PreferenceKeys.PREF_RESET_DEFAULT_PREFERENCES)) {
             Integer value = (Integer) objValue;
-            if (value.intValue() != 0) {
-                PermissionsServiceFactory.resetDefaultPermissions();
+            if (value.intValue() != BrowserYesNoPreference.CANCEL_BTN) {
+                BrowserSettings settings = BrowserSettings.getInstance();
+                if (value.intValue() == BrowserYesNoPreference.OTHER_BTN) {
+                    settings.clearCache();
+                    settings.clearDatabases();
+                    settings.clearCookies();
+                    settings.clearHistory();
+                    settings.clearFormData();
+                    settings.clearPasswords();
+                    settings.clearLocationAccess();
+                }
+
+                settings.resetDefaultPreferences();
                 mFragment.startActivity(new Intent(BrowserActivity.ACTION_RESTART, null,
                         mFragment.getActivity(), BrowserActivity.class));
                 return true;