summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPankaj Garg <pgarg@codeaurora.org>2015-08-10 09:56:57 -0700
committerjrizzoli <joey@cyanogenmoditalia.it>2015-08-28 13:15:47 +0200
commitf320d6e5c0ecc21fcd8a1f6ed77ce79993e524ff (patch)
tree19e15e45d581dfb193214450beb245931fb44c00
parent1f4cd1a41d5e3370e8b2f386443c6715a10daba3 (diff)
downloadandroid_packages_apps_Gello-f320d6e5c0ecc21fcd8a1f6ed77ce79993e524ff.tar.gz
android_packages_apps_Gello-f320d6e5c0ecc21fcd8a1f6ed77ce79993e524ff.tar.bz2
android_packages_apps_Gello-f320d6e5c0ecc21fcd8a1f6ed77ce79993e524ff.zip
Fixed resetting of webrefiner
- WebRefiner site specific settings were not properly cleared on browser reset to default Change-Id: I957111763b7b86eb91dc75744ec21deea0425bd5
-rw-r--r--src/com/android/browser/BrowserSettings.java20
-rw-r--r--src/com/android/browser/BrowserYesNoPreference.java25
-rw-r--r--src/com/android/browser/preferences/AdvancedPreferencesFragment.java18
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<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 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;