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