108a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu/* 208a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * Copyright (C) 2012 The Android Open Source Project 308a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * 408a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * Licensed under the Apache License, Version 2.0 (the "License"); 508a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * you may not use this file except in compliance with the License. 608a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * You may obtain a copy of the License at 708a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * 808a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * http://www.apache.org/licenses/LICENSE-2.0 908a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * 1008a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * Unless required by applicable law or agreed to in writing, software 1108a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * distributed under the License is distributed on an "AS IS" BASIS, 1208a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1308a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * See the License for the specific language governing permissions and 1408a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * limitations under the License. 1508a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu */ 1608a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu 1708a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liupackage com.android.webview.chromium; 1808a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu 1908a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liuimport org.chromium.content.browser.NavigationEntry; 2008a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu 2108a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liuimport android.graphics.Bitmap; 2208a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liuimport android.webkit.WebHistoryItem; 2308a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu 2408a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu/** 2508a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * WebView Chromium implementation of WebHistoryItem. Simple immutable wrapper 2608a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * around NavigationEntry 2708a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu */ 2808a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liupublic class WebHistoryItemChromium extends WebHistoryItem { 2908a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu private final String mUrl; 3008a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu private final String mOriginalUrl; 3108a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu private final String mTitle; 3208a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu private final Bitmap mFavicon; 3308a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu 3408a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu /* package */ WebHistoryItemChromium(NavigationEntry entry) { 3508a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu mUrl = entry.getUrl(); 3608a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu mOriginalUrl = entry.getOriginalUrl(); 3708a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu mTitle = entry.getTitle(); 3808a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu mFavicon = entry.getFavicon(); 3908a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu } 4008a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu 4108a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu /** 4208a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * See {@link android.webkit.WebHistoryItem#getId}. 4308a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu */ 4408a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu @Override 4508a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu public int getId() { 4608a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu // This method is deprecated in superclass. Returning constant -1 now. 4708a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu return -1; 4808a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu } 4908a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu 5008a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu /** 5108a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * See {@link android.webkit.WebHistoryItem#getUrl}. 5208a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu */ 5308a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu @Override 5408a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu public String getUrl() { 5508a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu return mUrl; 5608a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu } 5708a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu 5808a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu /** 5908a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * See {@link android.webkit.WebHistoryItem#getOriginalUrl}. 6008a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu */ 6108a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu @Override 6208a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu public String getOriginalUrl() { 6308a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu return mOriginalUrl; 6408a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu } 6508a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu 6608a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu /** 6708a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * See {@link android.webkit.WebHistoryItem#getTitle}. 6808a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu */ 6908a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu @Override 7008a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu public String getTitle() { 7108a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu return mTitle; 7208a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu } 7308a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu 7408a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu /** 7508a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * See {@link android.webkit.WebHistoryItem#getFavicon}. 7608a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu */ 7708a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu @Override 7808a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu public Bitmap getFavicon() { 7908a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu return mFavicon; 8008a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu } 8108a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu 8208a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu // Clone constructor. 8308a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu private WebHistoryItemChromium( 8408a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu String url, String originalUrl, String title, Bitmap favicon) { 8508a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu mUrl = url; 8608a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu mOriginalUrl = originalUrl; 8708a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu mTitle = title; 8808a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu mFavicon = favicon; 8908a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu } 9008a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu 9108a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu /** 9208a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu * See {@link android.webkit.WebHistoryItem#clone}. 9308a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu */ 9408a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu @Override 9508a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu public synchronized WebHistoryItemChromium clone() { 9608a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu return new WebHistoryItemChromium(mUrl, mOriginalUrl, mTitle, mFavicon); 9708a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu } 9808a5e00cdfb74f4ffd843d2d0a9b0b40b86b107aBo Liu} 99