/* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.webkit; import android.annotation.SystemApi; import android.content.ContentResolver; import android.graphics.Bitmap; /** * Functions for manipulating the icon database used by WebView. * These functions require that a WebView be constructed before being invoked * and WebView.getIconDatabase() will return a WebIconDatabase object. This * WebIconDatabase object is a single instance and all methods operate on that * single object. * The main use-case for this class is calling {@link #open} * to enable favicon functionality on all WebView instances in this process. * * @deprecated This class is only required when running on devices * up to {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR2} */ @Deprecated public abstract class WebIconDatabase { /** * Interface for receiving icons from the database. * @deprecated This interface is obsolete. */ @Deprecated public interface IconListener { /** * Called when the icon has been retrieved from the database and the * result is non-null. * @param url The url passed in the request. * @param icon The favicon for the given url. */ public void onReceivedIcon(String url, Bitmap icon); } /** * Open a the icon database and store the icons in the given path. * @param path The directory path where the icon database will be stored. */ public abstract void open(String path); /** * Close the shared instance of the icon database. */ public abstract void close(); /** * Removes all the icons in the database. */ public abstract void removeAllIcons(); /** * Request the Bitmap representing the icon for the given page * url. If the icon exists, the listener will be called with the result. * @param url The page's url. * @param listener An implementation on IconListener to receive the result. */ public abstract void requestIconForPageUrl(String url, IconListener listener); /** {@hide} */ @SystemApi public abstract void bulkRequestIconForPageUrl(ContentResolver cr, String where, IconListener listener); /** * Retain the icon for the given page url. * @param url The page's url. */ public abstract void retainIconForPageUrl(String url); /** * Release the icon for the given page url. * @param url The page's url. */ public abstract void releaseIconForPageUrl(String url); /** * Get the global instance of WebIconDatabase. * @return A single instance of WebIconDatabase. It will be the same * instance for the current process each time this method is * called. */ public static WebIconDatabase getInstance() { // XXX: Must be created in the UI thread. return WebViewFactory.getProvider().getWebIconDatabase(); } }