From f320d6e5c0ecc21fcd8a1f6ed77ce79993e524ff Mon Sep 17 00:00:00 2001 From: Pankaj Garg Date: Mon, 10 Aug 2015 09:56:57 -0700 Subject: Fixed resetting of webrefiner - WebRefiner site specific settings were not properly cleared on browser reset to default Change-Id: I957111763b7b86eb91dc75744ec21deea0425bd5 --- src/com/android/browser/BrowserSettings.java | 20 +++++++++++++---- .../android/browser/BrowserYesNoPreference.java | 25 ++++++---------------- .../preferences/AdvancedPreferencesFragment.java | 18 ++++++++++++---- 3 files changed, 37 insertions(+), 26 deletions(-) diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java index cde500c6..fef0b446 100644 --- a/src/com/android/browser/BrowserSettings.java +++ b/src/com/android/browser/BrowserSettings.java @@ -51,6 +51,7 @@ import java.lang.ref.WeakReference; 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 class BrowserSettings implements OnSharedPreferenceChangeListener, } public void resetDefaultPreferences() { - mPrefs.edit() - .clear() - .apply(); + WebRefiner webRefiner = WebRefiner.getInstance(); + if (webRefiner != null) { + List 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 37e84319..d73ea08b 100644 --- a/src/com/android/browser/BrowserYesNoPreference.java +++ b/src/com/android/browser/BrowserYesNoPreference.java @@ -28,7 +28,7 @@ import android.view.View; 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 @@ class BrowserYesNoPreference extends DialogPreference { 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 @@ class BrowserYesNoPreference extends DialogPreference { 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 @@ class BrowserYesNoPreference extends DialogPreference { 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 00977f64..3d988947 100644 --- a/src/com/android/browser/preferences/AdvancedPreferencesFragment.java +++ b/src/com/android/browser/preferences/AdvancedPreferencesFragment.java @@ -33,12 +33,11 @@ import android.util.Log; 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 @@ public class AdvancedPreferencesFragment 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; -- cgit v1.2.3