1/*
2 * Copyright (C) 2012 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.webview.chromium;
18
19import org.chromium.content.browser.NavigationEntry;
20
21import android.graphics.Bitmap;
22import android.webkit.WebHistoryItem;
23
24/**
25 * WebView Chromium implementation of WebHistoryItem. Simple immutable wrapper
26 * around NavigationEntry
27 */
28public class WebHistoryItemChromium extends WebHistoryItem {
29    private final String mUrl;
30    private final String mOriginalUrl;
31    private final String mTitle;
32    private final Bitmap mFavicon;
33
34    /* package */ WebHistoryItemChromium(NavigationEntry entry) {
35        mUrl = entry.getUrl();
36        mOriginalUrl = entry.getOriginalUrl();
37        mTitle = entry.getTitle();
38        mFavicon = entry.getFavicon();
39    }
40
41    /**
42     * See {@link android.webkit.WebHistoryItem#getId}.
43     */
44    @Override
45    public int getId() {
46        // This method is deprecated in superclass. Returning constant -1 now.
47        return -1;
48    }
49
50    /**
51     * See {@link android.webkit.WebHistoryItem#getUrl}.
52     */
53    @Override
54    public String getUrl() {
55        return mUrl;
56    }
57
58    /**
59     * See {@link android.webkit.WebHistoryItem#getOriginalUrl}.
60     */
61    @Override
62    public String getOriginalUrl() {
63        return mOriginalUrl;
64    }
65
66    /**
67     * See {@link android.webkit.WebHistoryItem#getTitle}.
68     */
69    @Override
70    public String getTitle() {
71        return mTitle;
72    }
73
74    /**
75     * See {@link android.webkit.WebHistoryItem#getFavicon}.
76     */
77    @Override
78    public Bitmap getFavicon() {
79        return mFavicon;
80    }
81
82    // Clone constructor.
83    private WebHistoryItemChromium(
84            String url, String originalUrl, String title, Bitmap favicon) {
85        mUrl = url;
86        mOriginalUrl = originalUrl;
87        mTitle = title;
88        mFavicon = favicon;
89    }
90
91    /**
92     * See {@link android.webkit.WebHistoryItem#clone}.
93     */
94    @Override
95    public synchronized WebHistoryItemChromium clone() {
96        return new WebHistoryItemChromium(mUrl, mOriginalUrl, mTitle, mFavicon);
97    }
98}
99