diff options
author | Nicolas Roard <nicolas@android.com> | 2009-09-22 15:17:52 +0100 |
---|---|---|
committer | Nicolas Roard <nicolas@android.com> | 2009-09-22 15:17:52 +0100 |
commit | 99b3ae1a384981f96fca5432f3d20bf4e8d13667 (patch) | |
tree | 9a74c0d60772dd7d5075382a7f5237ce22c8c97f /src/com/android/browser/BrowserSettings.java | |
parent | f4672127dba061c9d4d69a1139e9c8e43d740a49 (diff) | |
download | packages_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.java | 33 |
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) { |