Merge "Fixes bookmark sort order"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 8e6934c..9fea44a 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -232,7 +232,6 @@
<receiver android:name=".OpenDownloadReceiver">
<intent-filter>
<action android:name="android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED"/>
- <data android:scheme="content" android:mimeType="vnd.android.cursor.item/download"/>
</intent-filter>
</receiver>
</application>
diff --git a/res/drawable-hdpi/bookmark_dialog_bg.9.png b/res/drawable-hdpi/bookmark_dialog_bg.9.png
new file mode 100644
index 0000000..9b8384d
--- /dev/null
+++ b/res/drawable-hdpi/bookmark_dialog_bg.9.png
Binary files differ
diff --git a/res/drawable-hdpi/cab_bg.9.png b/res/drawable-hdpi/cab_bg.9.png
new file mode 100644
index 0000000..8d0de94
--- /dev/null
+++ b/res/drawable-hdpi/cab_bg.9.png
Binary files differ
diff --git a/res/drawable-hdpi/crumb_divider.9.png b/res/drawable-hdpi/crumb_divider.9.png
new file mode 100644
index 0000000..f748ffa
--- /dev/null
+++ b/res/drawable-hdpi/crumb_divider.9.png
Binary files differ
diff --git a/res/drawable-hdpi/dialog_full.9.png b/res/drawable-hdpi/dialog_full.9.png
new file mode 100644
index 0000000..33a502b
--- /dev/null
+++ b/res/drawable-hdpi/dialog_full.9.png
Binary files differ
diff --git a/res/drawable-hdpi/empty_bookmark_image.png b/res/drawable-hdpi/empty_bookmark_image.png
new file mode 100644
index 0000000..7f9af71
--- /dev/null
+++ b/res/drawable-hdpi/empty_bookmark_image.png
Binary files differ
diff --git a/res/drawable-hdpi/fav_incognito.png b/res/drawable-hdpi/fav_incognito.png
new file mode 100644
index 0000000..b8acde2
--- /dev/null
+++ b/res/drawable-hdpi/fav_incognito.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_add_string.png b/res/drawable-hdpi/ic_add_string.png
new file mode 100644
index 0000000..0775776
--- /dev/null
+++ b/res/drawable-hdpi/ic_add_string.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_back_normal.png b/res/drawable-hdpi/ic_back_normal.png
new file mode 100644
index 0000000..1e1b446
--- /dev/null
+++ b/res/drawable-hdpi/ic_back_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bookmarks_history_normal.png b/res/drawable-hdpi/ic_bookmarks_history_normal.png
new file mode 100644
index 0000000..5110097
--- /dev/null
+++ b/res/drawable-hdpi/ic_bookmarks_history_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_favorite_on_dark.png b/res/drawable-hdpi/ic_favorite_on_dark.png
new file mode 100644
index 0000000..c60cbbe
--- /dev/null
+++ b/res/drawable-hdpi/ic_favorite_on_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_favorite_on_normal.png b/res/drawable-hdpi/ic_favorite_on_normal.png
new file mode 100644
index 0000000..fec86e8
--- /dev/null
+++ b/res/drawable-hdpi/ic_favorite_on_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_folder.9.png b/res/drawable-hdpi/ic_folder.9.png
new file mode 100644
index 0000000..c1c9d54
--- /dev/null
+++ b/res/drawable-hdpi/ic_folder.9.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_forward_normal.png b/res/drawable-hdpi/ic_forward_normal.png
new file mode 100644
index 0000000..1cbf28a
--- /dev/null
+++ b/res/drawable-hdpi/ic_forward_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_go_dark.png b/res/drawable-hdpi/ic_go_dark.png
new file mode 100644
index 0000000..6c06ced
--- /dev/null
+++ b/res/drawable-hdpi/ic_go_dark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_archive_normal.png b/res/drawable-hdpi/ic_menu_archive_normal.png
new file mode 100644
index 0000000..368b125
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_archive_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_cab_close.png b/res/drawable-hdpi/ic_menu_cab_close.png
new file mode 100644
index 0000000..5cf7990
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_cab_close.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_cab_pencil.png b/res/drawable-hdpi/ic_menu_cab_pencil.png
new file mode 100644
index 0000000..a15878b
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_cab_pencil.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_downloads_normal.png b/res/drawable-hdpi/ic_menu_downloads_normal.png
new file mode 100644
index 0000000..b1ef0fe
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_downloads_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_findonpage_normal.png b/res/drawable-hdpi/ic_menu_findonpage_normal.png
new file mode 100644
index 0000000..f4f8f85
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_findonpage_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_incognito_normal.png b/res/drawable-hdpi/ic_menu_incognito_normal.png
new file mode 100644
index 0000000..dbecf6f
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_incognito_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_overflow.png b/res/drawable-hdpi/ic_menu_overflow.png
new file mode 100644
index 0000000..107de5e
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_overflow.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_pageinfo_normal.png b/res/drawable-hdpi/ic_menu_pageinfo_normal.png
new file mode 100644
index 0000000..b783a65
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_pageinfo_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_settings_normal.png b/res/drawable-hdpi/ic_menu_settings_normal.png
new file mode 100644
index 0000000..f07be97
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_settings_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_share_normal.png b/res/drawable-hdpi/ic_menu_share_normal.png
new file mode 100644
index 0000000..b50b58f
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_share_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_refresh_normal.png b/res/drawable-hdpi/ic_refresh_normal.png
new file mode 100644
index 0000000..9ee3078
--- /dev/null
+++ b/res/drawable-hdpi/ic_refresh_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_search_normal.png b/res/drawable-hdpi/ic_search_normal.png
new file mode 100644
index 0000000..343d2ca
--- /dev/null
+++ b/res/drawable-hdpi/ic_search_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_stop_normal.png b/res/drawable-hdpi/ic_stop_normal.png
new file mode 100644
index 0000000..18ca67a
--- /dev/null
+++ b/res/drawable-hdpi/ic_stop_normal.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_tab_close.png b/res/drawable-hdpi/ic_tab_close.png
new file mode 100644
index 0000000..e501486
--- /dev/null
+++ b/res/drawable-hdpi/ic_tab_close.png
Binary files differ
diff --git a/res/drawable-hdpi/menu_dropdown.9.png b/res/drawable-hdpi/menu_dropdown.9.png
new file mode 100644
index 0000000..e388252
--- /dev/null
+++ b/res/drawable-hdpi/menu_dropdown.9.png
Binary files differ
diff --git a/res/drawable-hdpi/progress.9.png b/res/drawable-hdpi/progress.9.png
new file mode 100644
index 0000000..398bee4
--- /dev/null
+++ b/res/drawable-hdpi/progress.9.png
Binary files differ
diff --git a/res/drawable-hdpi/tabbar_bg.9.png b/res/drawable-hdpi/tabbar_bg.9.png
new file mode 100644
index 0000000..01dabd0
--- /dev/null
+++ b/res/drawable-hdpi/tabbar_bg.9.png
Binary files differ
diff --git a/res/drawable-hdpi/text_field.9.png b/res/drawable-hdpi/text_field.9.png
new file mode 100644
index 0000000..a30afd9
--- /dev/null
+++ b/res/drawable-hdpi/text_field.9.png
Binary files differ
diff --git a/res/drawable-hdpi/text_field_focused.9.png b/res/drawable-hdpi/text_field_focused.9.png
new file mode 100644
index 0000000..3888eef
--- /dev/null
+++ b/res/drawable-hdpi/text_field_focused.9.png
Binary files differ
diff --git a/res/drawable-hdpi/text_field_results.9.png b/res/drawable-hdpi/text_field_results.9.png
new file mode 100644
index 0000000..bd4bcc5
--- /dev/null
+++ b/res/drawable-hdpi/text_field_results.9.png
Binary files differ
diff --git a/res/drawable-hdpi/urlbar_bg.9.png b/res/drawable-hdpi/urlbar_bg.9.png
new file mode 100644
index 0000000..c35383e
--- /dev/null
+++ b/res/drawable-hdpi/urlbar_bg.9.png
Binary files differ
diff --git a/res/drawable-mdpi/button_selected.png b/res/drawable-mdpi/button_selected.png
new file mode 100644
index 0000000..5513bb3
--- /dev/null
+++ b/res/drawable-mdpi/button_selected.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_folder.9.png b/res/drawable-mdpi/ic_folder.9.png
new file mode 100644
index 0000000..431aae8
--- /dev/null
+++ b/res/drawable-mdpi/ic_folder.9.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_folder.png b/res/drawable-mdpi/ic_folder.png
deleted file mode 100644
index ee85b28..0000000
--- a/res/drawable-mdpi/ic_folder.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_downloads.png b/res/drawable-mdpi/ic_menu_downloads.png
new file mode 100644
index 0000000..9851f60
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_downloads.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_pageinfo.png b/res/drawable-mdpi/ic_menu_pageinfo.png
new file mode 100644
index 0000000..adf5c2a
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_pageinfo.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_settings.png b/res/drawable-mdpi/ic_menu_settings.png
new file mode 100644
index 0000000..a98a18b
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_settings.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_share.png b/res/drawable-mdpi/ic_menu_share.png
new file mode 100644
index 0000000..b09e74d
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_share.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_reload.png b/res/drawable-mdpi/ic_reload.png
new file mode 100644
index 0000000..215ca02
--- /dev/null
+++ b/res/drawable-mdpi/ic_reload.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_star.png b/res/drawable-mdpi/ic_star.png
new file mode 100644
index 0000000..608d8a7
--- /dev/null
+++ b/res/drawable-mdpi/ic_star.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_stop.png b/res/drawable-mdpi/ic_stop.png
new file mode 100644
index 0000000..19b2e15
--- /dev/null
+++ b/res/drawable-mdpi/ic_stop.png
Binary files differ
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 072a0b1..639a75b 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -3184,9 +3184,14 @@
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setMimeType(mimetype);
request.setDestinationInExternalFilesDir(this, null, filename);
+ // let this downloaded file be scanned by MediaScanner - so that it can show up
+ // in Gallery app, for example.
+ request.allowScanningByMediaScanner();
request.setDescription(webAddress.getHost());
String cookies = CookieManager.getInstance().getCookie(url);
request.addRequestHeader("cookie", cookies);
+ request.setNotificationVisibility(
+ DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
if (mimetype == null) {
ContentValues values = new ContentValues();
values.put(FetchUrlMimeType.URI, addressString);
diff --git a/src/com/android/browser/OpenDownloadReceiver.java b/src/com/android/browser/OpenDownloadReceiver.java
index f66c332..02dba51 100644
--- a/src/com/android/browser/OpenDownloadReceiver.java
+++ b/src/com/android/browser/OpenDownloadReceiver.java
@@ -17,17 +17,10 @@
package com.android.browser;
import android.app.DownloadManager;
-import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
-import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
-import android.database.Cursor;
import android.net.Uri;
-import android.provider.Downloads;
-import android.widget.Toast;
-
-import java.io.File;
/**
* This {@link BroadcastReceiver} handles clicks to notifications that
@@ -36,49 +29,41 @@
* a complete, successful download will open the file.
*/
public class OpenDownloadReceiver extends BroadcastReceiver {
+ @Override
public void onReceive(Context context, Intent intent) {
- ContentResolver cr = context.getContentResolver();
- Uri data = intent.getData();
- Cursor cursor = null;
- try {
- cursor = cr.query(data,
- new String[] { Downloads.Impl._ID, Downloads.Impl._DATA,
- Downloads.Impl.COLUMN_MIME_TYPE, Downloads.Impl.COLUMN_STATUS },
- null, null, null);
- if (cursor.moveToFirst()) {
- String filename = cursor.getString(1);
- String mimetype = cursor.getString(2);
- String action = intent.getAction();
- if (Downloads.Impl.ACTION_NOTIFICATION_CLICKED.equals(action)) {
- int status = cursor.getInt(3);
- if (Downloads.Impl.isStatusCompleted(status)
- && Downloads.Impl.isStatusSuccess(status)) {
- Intent launchIntent = new Intent(Intent.ACTION_VIEW);
- Uri path = Uri.parse(filename);
- // If there is no scheme, then it must be a file
- if (path.getScheme() == null) {
- path = Uri.fromFile(new File(filename));
- }
- launchIntent.setDataAndType(path, mimetype);
- launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- try {
- context.startActivity(launchIntent);
- } catch (ActivityNotFoundException ex) {
- Toast.makeText(context,
- R.string.download_no_application_title,
- Toast.LENGTH_LONG).show();
- }
- } else {
- // Open the downloads page
- Intent pageView = new Intent(
- DownloadManager.ACTION_VIEW_DOWNLOADS);
- pageView.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- context.startActivity(pageView);
- }
- }
- }
- } finally {
- if (cursor != null) cursor.close();
+ String action = intent.getAction();
+ if (!DownloadManager.ACTION_NOTIFICATION_CLICKED.equals(action)) {
+ openDownloadsPage(context);
+ return;
}
+ long ids[] = intent.getLongArrayExtra(
+ DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS);
+ if (ids == null || ids.length == 0) {
+ openDownloadsPage(context);
+ return;
+ }
+ long id = ids[0];
+ DownloadManager manager = (DownloadManager) context.getSystemService(
+ Context.DOWNLOAD_SERVICE);
+ Uri uri = manager.getUriForDownloadedFile(id);
+ if (uri == null) {
+ // Open the downloads page
+ openDownloadsPage(context);
+ } else {
+ Intent launchIntent = new Intent(Intent.ACTION_VIEW);
+ launchIntent.setDataAndType(uri, context.getContentResolver().getType(uri));
+ launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ context.startActivity(launchIntent);
+ }
+ }
+
+ /**
+ * Open the Activity which shows a list of all downloads.
+ * @param context
+ */
+ private void openDownloadsPage(Context context) {
+ Intent pageView = new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS);
+ pageView.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ context.startActivity(pageView);
}
}
diff --git a/src/com/android/browser/SuggestionsAdapter.java b/src/com/android/browser/SuggestionsAdapter.java
index 626283a..d3609b2 100644
--- a/src/com/android/browser/SuggestionsAdapter.java
+++ b/src/com/android/browser/SuggestionsAdapter.java
@@ -73,7 +73,7 @@
public void onSearch(String txt);
- public void onSelect(String txt);
+ public void onSelect(String txt, String extraData);
public void onFilterComplete(int count);
@@ -119,7 +119,8 @@
mListener.onSearch(item.title);
} else {
SuggestItem item = (SuggestItem) v.getTag();
- mListener.onSelect((TextUtils.isEmpty(item.url)? item.title : item.url));
+ mListener.onSelect((TextUtils.isEmpty(item.url)? item.title : item.url),
+ item.extra);
}
}
@@ -378,6 +379,7 @@
String title;
String url;
int type;
+ String extra;
public SuggestItem(String text, String u, int t) {
title = text;
@@ -541,7 +543,10 @@
String uri = mCursor.getString(
mCursor.getColumnIndex(SearchManager.SUGGEST_COLUMN_INTENT_DATA));
int type = (TextUtils.isEmpty(url)) ? TYPE_SUGGEST : TYPE_SUGGEST_URL;
- return new SuggestItem(title, url, type);
+ SuggestItem item = new SuggestItem(title, url, type);
+ item.extra = mCursor.getString(
+ mCursor.getColumnIndex(SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA));
+ return item;
}
return null;
}
diff --git a/src/com/android/browser/TitleBarXLarge.java b/src/com/android/browser/TitleBarXLarge.java
index b87ea78..f39c769 100644
--- a/src/com/android/browser/TitleBarXLarge.java
+++ b/src/com/android/browser/TitleBarXLarge.java
@@ -137,7 +137,7 @@
stopOrRefresh();
} else if (mGoButton == v) {
if (!TextUtils.isEmpty(mUrlFocused.getText())) {
- onAction(mUrlFocused.getText().toString());
+ onAction(mUrlFocused.getText().toString(), null);
}
} else if (mClearButton == v) {
mUrlFocused.setText("");
@@ -154,12 +154,15 @@
// UrlInputListener implementation
@Override
- public void onAction(String text) {
+ public void onAction(String text, String extra) {
mBrowserActivity.getTabControl().getCurrentTopWebView().requestFocus();
mBrowserActivity.hideFakeTitleBar();
Intent i = new Intent();
i.setAction(Intent.ACTION_SEARCH);
i.putExtra(SearchManager.QUERY, text);
+ if (extra != null) {
+ i.putExtra(SearchManager.EXTRA_DATA_KEY, extra);
+ }
mBrowserActivity.onNewIntent(i);
setUrlMode(false);
setDisplayTitle(text);
diff --git a/src/com/android/browser/UrlInputView.java b/src/com/android/browser/UrlInputView.java
index 18c5fe6..e7fc233 100644
--- a/src/com/android/browser/UrlInputView.java
+++ b/src/com/android/browser/UrlInputView.java
@@ -114,7 +114,7 @@
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
- finishInput(getText().toString());
+ finishInput(getText().toString(), null);
return true;
}
@@ -123,7 +123,7 @@
if (hasFocus) {
forceIme();
} else {
- finishInput(null);
+ finishInput(null, null);
}
if (mWrappedFocusListener != null) {
mWrappedFocusListener.onFocusChange(v, hasFocus);
@@ -138,14 +138,14 @@
mInputManager.showSoftInput(this, 0);
}
- private void finishInput(String url) {
+ private void finishInput(String url, String extra) {
this.dismissDropDown();
this.setSelection(0,0);
mInputManager.hideSoftInputFromWindow(getWindowToken(), 0);
if (url == null) {
mListener.onDismiss();
} else {
- mListener.onAction(url);
+ mListener.onAction(url, extra);
}
}
@@ -157,15 +157,15 @@
}
@Override
- public void onSelect(String url) {
- finishInput(url);
+ public void onSelect(String url, String extra) {
+ finishInput(url, extra);
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent evt) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// catch back key in order to do slightly more cleanup than usual
- finishInput(null);
+ finishInput(null, null);
return true;
}
return super.onKeyPreIme(keyCode, evt);
@@ -175,7 +175,7 @@
public void onDismiss();
- public void onAction(String text);
+ public void onAction(String text, String extra);
public void onEdit(String text);