diff options
| author | Michael Kolb <kolby@google.com> | 2010-07-08 15:41:55 -0700 |
|---|---|---|
| committer | Michael Kolb <kolby@google.com> | 2010-07-27 13:28:43 -0700 |
| commit | fe25199a6f975c67d28afcc1de56b0f987b66cd8 (patch) | |
| tree | f505e4b04283a2e26d32091648ae7a4c3c0d7664 /src/com/android/browser/Tab.java | |
| parent | b4b83182219908210d4554466367736692faf6ce (diff) | |
| download | packages_apps_Browser-fe25199a6f975c67d28afcc1de56b0f987b66cd8.tar.gz packages_apps_Browser-fe25199a6f975c67d28afcc1de56b0f987b66cd8.tar.bz2 packages_apps_Browser-fe25199a6f975c67d28afcc1de56b0f987b66cd8.zip | |
tabbed title bar work
bug # http://b/issue?id=2712871
added tab bar
added tab status callbacks to Tab and TabControl
added compact progress/stop/refresh button
added UrlInputView for auto-complete suggestions
modified BrowserProvider for url input suggestions
modified BrowserActivity to use TitleBarXLarge
Change-Id: I62db2be5b89f4c4f27c09dbc6fee7b3b0d5e91b5
Diffstat (limited to 'src/com/android/browser/Tab.java')
| -rw-r--r-- | src/com/android/browser/Tab.java | 48 |
1 files changed, 39 insertions, 9 deletions
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java index 6b74a6c8d..1d9482bdc 100644 --- a/src/com/android/browser/Tab.java +++ b/src/com/android/browser/Tab.java @@ -16,21 +16,13 @@ package com.android.browser; -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.Map; -import java.util.Vector; - import android.app.AlertDialog; import android.app.SearchManager; import android.content.ContentResolver; import android.content.ContentValues; import android.content.DialogInterface; -import android.content.DialogInterface.OnCancelListener; import android.content.Intent; +import android.content.DialogInterface.OnCancelListener; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; @@ -71,8 +63,17 @@ import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.TextView; +import com.android.browser.TabControl.TabChangeListener; import com.android.common.speech.LoggingEvents; +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.Map; +import java.util.Vector; + /** * Class for maintaining Tabs with a main WebView and a subwindow. */ @@ -502,6 +503,9 @@ class Tab { if (mInForeground) { mActivity.onPageStarted(view, url, favicon); } + if (getTabChangeListener() != null) { + getTabChangeListener().onPageStarted(Tab.this); + } } @Override @@ -523,6 +527,9 @@ class Tab { if (mInForeground) { mActivity.onPageFinished(view, url); } + if (getTabChangeListener() != null) { + getTabChangeListener().onPageFinished(Tab.this); + } } // return true if want to hijack the url to let another app to handle it @@ -672,6 +679,7 @@ class Tab { final ContentResolver cr = mActivity.getContentResolver(); final String newUrl = url; new AsyncTask<Void, Void, Void>() { + @Override protected Void doInBackground(Void... unused) { Browser.updateVisitedHistory(cr, newUrl, true); return null; @@ -948,6 +956,9 @@ class Tab { if (mInForeground) { mActivity.onProgressChanged(view, newProgress); } + if (getTabChangeListener() != null) { + getTabChangeListener().onProgress(Tab.this, newProgress); + } } @Override @@ -957,11 +968,16 @@ class Tab { // here, if url is null, we want to reset the title mActivity.setUrlTitle(pageUrl, title); } + TabChangeListener tcl = getTabChangeListener(); + if (tcl != null) { + tcl.onUrlAndTitle(Tab.this, pageUrl,title); + } if (pageUrl == null || pageUrl.length() >= SQLiteDatabase.SQLITE_MAX_LIKE_PATTERN_LENGTH) { return; } new AsyncTask<Void, Void, Void>() { + @Override protected Void doInBackground(Void... unused) { // See if we can find the current url in our history // database and add the new title to it. @@ -1020,6 +1036,9 @@ class Tab { if (mInForeground) { mActivity.setFavicon(icon); } + if (getTabChangeListener() != null) { + getTabChangeListener().onFavicon(Tab.this, icon); + } } @Override @@ -1208,10 +1227,12 @@ class Tab { @Override public void getVisitedHistory(final ValueCallback<String[]> callback) { AsyncTask<Void, Void, String[]> task = new AsyncTask<Void, Void, String[]>() { + @Override public String[] doInBackground(Void... unused) { return Browser.getVisitedHistory(mActivity .getContentResolver()); } + @Override public void onPostExecute(String[] result) { callback.onReceiveValue(result); }; @@ -1990,4 +2011,13 @@ class Tab { LinearLayout parent = (LinearLayout) dialog.getParent(); if (parent != null) parent.removeView(dialog); } + + /** + * always get the TabChangeListener form the tab control + * @return the TabControl change listener + */ + private TabChangeListener getTabChangeListener() { + return mActivity.getTabControl().getTabChangeListener(); + } + } |
