19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.webkit;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Sollaimport android.annotation.SystemApi;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.graphics.Bitmap;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * A convenience class for accessing fields in an entry in the back/forward list
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * of a WebView. Each WebHistoryItem is a snapshot of the requested history
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * item. Each history item may be updated during the load of a page.
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see WebBackForwardList
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
28451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Sollapublic abstract class WebHistoryItem implements Cloneable {
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Return an identifier for this history item. If an item is a copy of
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * another item, the identifiers will be the same even if they are not the
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * same object.
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return The id for this item.
34fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen     * @deprecated This method is now obsolete.
35f4912580e6adc90ab37b07b8108c7334f359e317Kristian Monsen     * @hide Since API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1}
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
37451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Solla    @SystemApi
38fc77165d446520716f18cdc14e30b39a6d8b9bacKristian Monsen    @Deprecated
39451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Solla    public abstract int getId();
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Return the url of this history item. The url is the base url of this
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * history item. See getTargetUrl() for the url that is the actual target of
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * this history item.
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return The base url of this history item.
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Note: The VM ensures 32-bit atomic read/write operations so we don't have
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * to synchronize this method.
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
49451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Solla    public abstract String getUrl();
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Return the original url of this history item. This was the requested
53451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Solla     * url, the final url may be different as there might have been
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * redirects while loading the site.
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return The original url of this history item.
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
57451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Solla    public abstract String getOriginalUrl();
58451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Solla
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Return the document title of this history item.
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return The document title of this history item.
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Note: The VM ensures 32-bit atomic read/write operations so we don't have
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * to synchronize this method.
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
65451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Solla    public abstract String getTitle();
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Return the favicon of this history item or null if no favicon was found.
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return A Bitmap containing the favicon for this history item or null.
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Note: The VM ensures 32-bit atomic read/write operations so we don't have
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * to synchronize this method.
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
73451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Solla    public abstract Bitmap getFavicon();
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Clone the history item for use by clients of WebView.
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
78451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Solla    protected abstract WebHistoryItem clone();
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
80