Code drop from //branches/cupcake/...@124589
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index f938ff9..5c509a8 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -20,6 +20,7 @@
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
+import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
@@ -52,6 +53,10 @@
private AddNewBookmark mAddHeader;
private boolean mCanceled = false;
private boolean mCreateShortcut;
+ // XXX: There is no public string defining this intent so if Home changes
+ // the value, we have to update this string.
+ private static final String INSTALL_SHORTCUT =
+ "com.android.launcher.action.INSTALL_SHORTCUT";
private final static String LOGTAG = "browser";
@@ -80,6 +85,12 @@
case R.id.edit_context_menu_id:
editBookmark(i.position);
break;
+ case R.id.shortcut_context_menu_id:
+ final Intent send = createShortcutIntent(getUrl(i.position),
+ getBookmarkTitle(i.position));
+ send.setAction(INSTALL_SHORTCUT);
+ sendBroadcast(send);
+ break;
case R.id.delete_context_menu_id:
displayRemoveBookmarkDialog(i.position);
break;
@@ -191,19 +202,27 @@
loadUrl(position);
}
} else {
- final Intent intent = new Intent();
- intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_VIEW,
- Uri.parse(getUrl(position))));
- intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getBookmarkTitle(position));
- intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
- Intent.ShortcutIconResource.fromContext(BrowserBookmarksPage.this,
- R.drawable.ic_launcher_browser));
+ final Intent intent = createShortcutIntent(getUrl(position),
+ getBookmarkTitle(position));
setResult(RESULT_OK, intent);
finish();
}
}
};
+ private Intent createShortcutIntent(String url, String title) {
+ final Intent i = new Intent();
+ i.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_VIEW,
+ Uri.parse(url)));
+ i.putExtra(Intent.EXTRA_SHORTCUT_NAME, title);
+ i.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
+ Intent.ShortcutIconResource.fromContext(BrowserBookmarksPage.this,
+ R.drawable.ic_launcher_browser));
+ // Do not allow duplicate items
+ i.putExtra("duplicate", false);
+ return i;
+ }
+
private void saveCurrentPage() {
Intent i = new Intent(BrowserBookmarksPage.this,
AddBookmarkPage.class);
@@ -290,7 +309,7 @@
final int deletePos = position;
new AlertDialog.Builder(this)
.setTitle(R.string.delete_bookmark)
- .setIcon(R.drawable.ssl_icon)
+ .setIcon(android.R.drawable.ic_dialog_alert)
.setMessage(getText(R.string.delete_bookmark_warning).toString().replace(
"%s", getBookmarkTitle(deletePos)))
.setPositiveButton(R.string.ok,