summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/BrowserSettings.java
diff options
context:
space:
mode:
authorNicolas Roard <nicolas@android.com>2009-09-22 15:17:52 +0100
committerNicolas Roard <nicolas@android.com>2009-09-22 15:17:52 +0100
commit99b3ae1a384981f96fca5432f3d20bf4e8d13667 (patch)
tree9a74c0d60772dd7d5075382a7f5237ce22c8c97f /src/com/android/browser/BrowserSettings.java
parentf4672127dba061c9d4d69a1139e9c8e43d740a49 (diff)
downloadpackages_apps_Browser-99b3ae1a384981f96fca5432f3d20bf4e8d13667.zip
packages_apps_Browser-99b3ae1a384981f96fca5432f3d20bf4e8d13667.tar.gz
packages_apps_Browser-99b3ae1a384981f96fca5432f3d20bf4e8d13667.tar.bz2
Reimplement the settings to use async callbacks
Diffstat (limited to 'src/com/android/browser/BrowserSettings.java')
-rw-r--r--src/com/android/browser/BrowserSettings.java33
1 files changed, 22 insertions, 11 deletions
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 91b08a3..cb51b50 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -28,6 +28,7 @@ import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
import android.webkit.CookieManager;
import android.webkit.GeolocationPermissions;
+import android.webkit.ValueCallback;
import android.webkit.WebView;
import android.webkit.WebViewDatabase;
import android.webkit.WebIconDatabase;
@@ -36,8 +37,9 @@ import android.webkit.WebStorage;
import android.preference.PreferenceManager;
import android.provider.Browser;
-import java.util.Set;
import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
import java.util.Observable;
/*
@@ -534,16 +536,25 @@ class BrowserSettings extends Observable {
}
private void maybeDisableWebsiteSettings(Context context) {
- Set webStorageOrigins = WebStorage.getInstance().getOrigins();
- Set geolocationOrigins =
- GeolocationPermissions.getInstance().getOrigins();
- if (((webStorageOrigins == null) || webStorageOrigins.isEmpty()) &&
- ((geolocationOrigins == null) || geolocationOrigins.isEmpty())) {
- PreferenceActivity activity = (PreferenceActivity) context;
- PreferenceScreen screen = (PreferenceScreen)
- activity.findPreference(BrowserSettings.PREF_WEBSITE_SETTINGS);
- screen.setEnabled(false);
- }
+ PreferenceActivity activity = (PreferenceActivity) context;
+ final PreferenceScreen screen = (PreferenceScreen)
+ activity.findPreference(BrowserSettings.PREF_WEBSITE_SETTINGS);
+ screen.setEnabled(false);
+ WebStorage.getInstance().getOrigins(new ValueCallback<Map>() {
+ public void onReceiveValue(Map webStorageOrigins) {
+ if ((webStorageOrigins != null) && !webStorageOrigins.isEmpty()) {
+ screen.setEnabled(true);
+ }
+ }
+ });
+
+ GeolocationPermissions.getInstance().getOrigins(new ValueCallback<Set>() {
+ public void onReceiveValue(Set geolocationOrigins) {
+ if ((geolocationOrigins != null) && !geolocationOrigins.isEmpty()) {
+ screen.setEnabled(true);
+ }
+ }
+ });
}
/*package*/ void clearDatabases(Context context) {