Merge "Update large-screen translations." into honeycomb
diff --git a/res/menu/bookmarkscontext.xml b/res/menu/bookmarkscontext.xml
index 4d7ec7a..3a13b9a 100644
--- a/res/menu/bookmarkscontext.xml
+++ b/res/menu/bookmarkscontext.xml
@@ -36,6 +36,8 @@
</group>
<group android:id="@+id/FOLDER_CONTEXT_MENU"
android:visible="false">
+ <item android:id="@+id/new_window_context_menu_id"
+ android:title="@string/open_all_in_new_window"/>
<item android:id="@+id/edit_context_menu_id"
android:title="@string/edit_folder"/>
<item android:id="@+id/delete_context_menu_id"
diff --git a/res/values-xlarge/strings.xml b/res/values-xlarge/strings.xml
index 856b2b9..8dcabe2 100644
--- a/res/values-xlarge/strings.xml
+++ b/res/values-xlarge/strings.xml
@@ -25,4 +25,6 @@
<!-- Context Menu item to open the currently selected link in a new
window. [CHAR LIMIT=30] -->
<string name="contextmenu_openlink_newwindow">Open in new tab</string>
+ <!-- Context menu item to open every bookmark in a folder in new tabs [CHAR LIMIT=50] -->
+ <string name="open_all_in_new_window">Open all in new tabs</string>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c0aa0d2..4464370 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -204,6 +204,8 @@
<string name="delete_bookmark_warning">Bookmark \"<xliff:g id="bookmark">%s</xliff:g>\" will be deleted.</string>
<!-- Context Menu item to open the selected link in a new window -->
<string name="open_in_new_window">Open in new window</string>
+ <!-- Context menu item to open every bookmark in a folder in new windows [CHAR LIMIT=50] -->
+ <string name="open_all_in_new_window">Open all in new windows</string>
<!-- Menu item to open a dialog which allows the user to enter a url or do search-->
<string name="goto_dot">Go</string>
<!-- Menu item that opens up a new incognito tab. [CHAR LIMIT=30] -->
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index 825da33..ea97c29 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -566,10 +566,43 @@
private void openInNewWindow(int position) {
if (mCallbacks != null) {
- mCallbacks.onOpenInNewWindow(mAdapter.getItem(position));
+ Cursor c = mAdapter.getItem(position);
+ boolean isFolder = c.getInt(BookmarksLoader.COLUMN_INDEX_IS_FOLDER) == 1;
+ if (isFolder) {
+ long id = c.getLong(BookmarksLoader.COLUMN_INDEX_ID);
+ new OpenAllInTabsTask(id).execute();
+ } else {
+ mCallbacks.onOpenInNewWindow(c);
+ }
}
}
+ class OpenAllInTabsTask extends AsyncTask<Void, Void, Cursor> {
+ long mFolderId;
+ public OpenAllInTabsTask(long id) {
+ mFolderId = id;
+ }
+
+ @Override
+ protected Cursor doInBackground(Void... params) {
+ Context c = getActivity();
+ if (c == null) return null;
+ return c.getContentResolver().query(BookmarkUtils.getBookmarksUri(c),
+ BookmarksLoader.PROJECTION, BrowserContract.Bookmarks.PARENT + "=?",
+ new String[] { Long.toString(mFolderId) }, null);
+ }
+
+ @Override
+ protected void onPostExecute(Cursor result) {
+ if (mCallbacks != null) {
+ while (result.moveToNext()) {
+ mCallbacks.onOpenInNewWindow(result);
+ }
+ }
+ }
+
+ }
+
private void editBookmark(int position) {
Intent intent = new Intent(getActivity(), AddBookmarkPage.class);
Cursor cursor = mAdapter.getItem(position);
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index ca8091f..7be3345 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -200,7 +200,7 @@
public static final Uri RLZ_PROVIDER_URI = Uri.parse("content://" + RLZ_PROVIDER + "/");
// Set to true to enable some of the about:debug options
- public static final boolean DEV_BUILD = true;
+ public static final boolean DEV_BUILD = false;
private Controller mController;
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 50e7813..23594f2 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -733,7 +733,7 @@
// WebViewController
@Override
- public void onPageStarted(Tab tab, WebView view, String url, Bitmap favicon) {
+ public void onPageStarted(Tab tab, WebView view, Bitmap favicon) {
// We've started to load a new page. If there was a pending message
// to save a screenshot then we will now take the new page and save
@@ -764,6 +764,7 @@
mUi.onTabDataChanged(tab);
+ String url = tab.getUrl();
// update the bookmark database for favicon
maybeUpdateFavicon(tab, null, url, favicon);
@@ -777,9 +778,10 @@
}
@Override
- public void onPageFinished(Tab tab, String url) {
+ public void onPageFinished(Tab tab) {
mUi.onTabDataChanged(tab);
- if (!tab.isPrivateBrowsingEnabled()) {
+ if (!tab.isPrivateBrowsingEnabled()
+ && !TextUtils.isEmpty(tab.getUrl())) {
if (tab.inForeground() && !didUserStopLoading()
|| !tab.inForeground()) {
// Only update the bookmark screenshot if the user did not
@@ -799,7 +801,7 @@
}
// Performance probe
if (false) {
- Performance.onPageFinished(url);
+ Performance.onPageFinished(tab.getUrl());
}
Performance.tracePageFinished();
@@ -843,7 +845,7 @@
public void onReceivedTitle(Tab tab, final String title) {
mUi.onTabDataChanged(tab);
final String pageUrl = tab.getUrl();
- if (pageUrl == null || pageUrl.length()
+ if (TextUtils.isEmpty(pageUrl) || pageUrl.length()
>= SQLiteDatabase.SQLITE_MAX_LIKE_PATTERN_LENGTH) {
return;
}
@@ -887,12 +889,13 @@
}
@Override
- public void doUpdateVisitedHistory(Tab tab, String url,
- boolean isReload) {
+ public void doUpdateVisitedHistory(Tab tab, boolean isReload) {
// Don't save anything in private browsing mode
if (tab.isPrivateBrowsingEnabled()) return;
+ String url = tab.getUrl();
- if (url.regionMatches(true, 0, "about:", 0, 6)) {
+ if (TextUtils.isEmpty(url)
+ || url.regionMatches(true, 0, "about:", 0, 6)) {
return;
}
mDataController.updateVisitedHistory(url);
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 5ef7564..d70b0ef 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -16,7 +16,6 @@
package com.android.browser;
-import com.android.browser.homepages.HomeProvider;
import com.android.common.speech.LoggingEvents;
import android.app.Activity;
@@ -533,7 +532,7 @@
}
// finally update the UI in the activity if it is in the foreground
- mWebViewController.onPageStarted(Tab.this, view, url, favicon);
+ mWebViewController.onPageStarted(Tab.this, view, favicon);
updateBookmarkedStatus();
}
@@ -557,7 +556,7 @@
// but before a provisional load occurred
mCurrentState.mLockIcon = LockIcon.LOCK_ICON_UNSECURE;
}
- mWebViewController.onPageFinished(Tab.this, url);
+ mWebViewController.onPageFinished(Tab.this);
}
// return true if want to hijack the url to let another app to handle it
@@ -688,7 +687,7 @@
@Override
public void doUpdateVisitedHistory(WebView view, String url,
boolean isReload) {
- mWebViewController.doUpdateVisitedHistory(Tab.this, url, isReload);
+ mWebViewController.doUpdateVisitedHistory(Tab.this, isReload);
}
/**
@@ -1569,10 +1568,7 @@
}
String getUrl() {
- if (HomeProvider.MOST_VISITED.equals(mCurrentState.mUrl)) {
- return "";
- }
- return mCurrentState.mUrl;
+ return UrlUtils.filteredUrl(mCurrentState.mUrl);
}
/**
diff --git a/src/com/android/browser/UrlUtils.java b/src/com/android/browser/UrlUtils.java
index 2df0a61..72ac37b 100644
--- a/src/com/android/browser/UrlUtils.java
+++ b/src/com/android/browser/UrlUtils.java
@@ -16,6 +16,8 @@
package com.android.browser;
+import com.android.browser.homepages.HomeProvider;
+
import android.net.Uri;
import android.util.Patterns;
import android.webkit.URLUtil;
@@ -145,4 +147,15 @@
return inUrl;
}
+ // Returns the filtered URL. Cannot return null, but can return an empty string
+ /* package */ static String filteredUrl(String inUrl) {
+ if (inUrl == null) {
+ return "";
+ }
+ if (inUrl.startsWith(HomeProvider.MOST_VISITED)) {
+ return "";
+ }
+ return inUrl;
+ }
+
}
diff --git a/src/com/android/browser/WebViewController.java b/src/com/android/browser/WebViewController.java
index a187af0..813b63b 100644
--- a/src/com/android/browser/WebViewController.java
+++ b/src/com/android/browser/WebViewController.java
@@ -46,9 +46,9 @@
void createSubWindow(Tab tab);
- void onPageStarted(Tab tab, WebView view, String url, Bitmap favicon);
+ void onPageStarted(Tab tab, WebView view, Bitmap favicon);
- void onPageFinished(Tab tab, String url);
+ void onPageFinished(Tab tab);
void onProgressChanged(Tab tab);
@@ -62,7 +62,7 @@
void onUnhandledKeyEvent(KeyEvent event);
- void doUpdateVisitedHistory(Tab tab, String url, boolean isReload);
+ void doUpdateVisitedHistory(Tab tab, boolean isReload);
void getVisitedHistory(final ValueCallback<String[]> callback);