Multiple fixes for Favicons
- Per Site Settings now uses SiteTiles and shows favicons
- New default Favicon
- Fixed missing Favicons on History items
Change-Id: Ia0317694ede81d62ce04e0693f9779f65030165c
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index d3621ef..8121ba4 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -220,8 +220,9 @@
String mUrl;
String mOriginalUrl;
String mTitle;
- SecurityState mSecurityState;
// This is non-null only when mSecurityState is SECURITY_STATE_BAD_CERTIFICATE.
+ SecurityState mSecurityState;
+ // This is non-null only when onReceivedIcon is called or SnapshotTab restores it.
Bitmap mFavicon;
boolean mIsBookmarkedSite;
boolean mIncognito;
@@ -237,14 +238,13 @@
mSecurityState = SecurityState.SECURITY_STATE_NOT_SECURE;
}
- PageState(Context c, boolean incognito, String url, Bitmap favicon) {
+ PageState(Context c, boolean incognito, String url) {
mIncognito = incognito;
if (mIncognito)
mOriginalUrl = mUrl = "";
else
mOriginalUrl = mUrl = url;
mSecurityState = SecurityState.SECURITY_STATE_NOT_SECURE;
- mFavicon = favicon;
}
}
@@ -335,7 +335,7 @@
mUpdateThumbnail = true;
mPageLoadProgress = INITIAL_PROGRESS;
mCurrentState = new PageState(mContext,
- view.isPrivateBrowsingEnabled(), url, favicon);
+ view.isPrivateBrowsingEnabled(), url);
mLoadStartTime = SystemClock.uptimeMillis();
// Need re-enable FullScreenMode on Page navigation if needed
if (BrowserSettings.getInstance().useFullscreen()){
@@ -549,6 +549,18 @@
@Override
public void beforeNavigation(WebView view, String url) {
mTouchIconUrl = null;
+ TitleBar titleBar = null;
+ Controller controller = (Controller)mWebViewController;
+ UI ui = controller.getUi();
+
+ if (ui instanceof BaseUi) {
+ titleBar = ((BaseUi)ui).getTitleBar();
+ if (titleBar != null) {
+ NavigationBarBase navBar = titleBar.getNavigationBar();
+ navBar.showCurrentFavicon(Tab.this); // Show the default Favicon while loading a new page
+ }
+ }
+
if (BaseUi.isUiLowPowerMode()) {
return;
}
@@ -561,19 +573,11 @@
return;
}
- if (view.getUrl().equals(url)) {
- return;
- }
-
final int idx = view.copyBackForwardList().getCurrentIndex();
boolean bitmapExists = view.hasSnapshot(idx);
int progress = 100;
- Controller controller = (Controller)mWebViewController;
- UI ui = controller.getUi();
- if (ui instanceof BaseUi) {
- BaseUi baseUi = (BaseUi) ui;
- TitleBar titleBar = baseUi.getTitleBar();
+ if (titleBar != null) {
progress = titleBar.getProgressView().getProgressPercent();
}
@@ -657,10 +661,10 @@
url.contains(Controller.INCOGNITO_URI)) {
mCurrentState.mUrl = mCurrentState.mOriginalUrl = "";
}
+
else {
mCurrentState.mUrl = view.getUrl();
mCurrentState.mOriginalUrl = view.getOriginalUrl();
- mCurrentState.mFavicon = view.getFavicon();
}
if (mCurrentState.mUrl == null) {
@@ -1195,6 +1199,16 @@
mId = TabControl.getNextId();
}
setWebView(w);
+
+ UI ui = ((Controller)mWebViewController).getUi();
+ if (ui instanceof BaseUi) {
+ TitleBar titleBar = ((BaseUi)ui).getTitleBar();
+ if (titleBar != null) {
+ NavigationBarBase navBar = titleBar.getNavigationBar();
+ navBar.showCurrentFavicon(this); // Show the default Favicon while loading a new page
+ }
+ }
+
mHandler = new Handler() {
@Override
public void handleMessage(Message m) {
@@ -1783,7 +1797,7 @@
String url = b.getString(CURRURL);
String title = b.getString(CURRTITLE);
boolean incognito = b.getBoolean(INCOGNITO);
- mCurrentState = new PageState(mContext, incognito, url, null);
+ mCurrentState = new PageState(mContext, incognito, url);
mCurrentState.mTitle = title;
synchronized (Tab.this) {
if (mCapture != null) {
@@ -1914,7 +1928,7 @@
if (mMainView != null) {
mPageLoadProgress = INITIAL_PROGRESS;
mCurrentState = new PageState(
- mContext, mMainView.isPrivateBrowsingEnabled(), url, null);
+ mContext, mMainView.isPrivateBrowsingEnabled(), url);
mMainView.loadUrl(url, headers);
}
}