diff options
| author | Leon Scroggins <scroggo@google.com> | 2009-07-28 14:14:48 -0400 |
|---|---|---|
| committer | Leon Scroggins <scroggo@google.com> | 2009-07-28 14:14:48 -0400 |
| commit | 186e593776c396bde3d720addd6f6842fe880a7c (patch) | |
| tree | 0db3dffc84e1481bb4ebb6003a56e307d348c0c1 /src/com/android | |
| parent | ee0d639003a5dec32cf45416b0c751def2d4d25a (diff) | |
| download | packages_apps_Browser-186e593776c396bde3d720addd6f6842fe880a7c.tar.gz packages_apps_Browser-186e593776c396bde3d720addd6f6842fe880a7c.tar.bz2 packages_apps_Browser-186e593776c396bde3d720addd6f6842fe880a7c.zip | |
In History context menu, do not show "Add bookmark" for bookmarks.
Fix for http://b/issue?id=1688867. Instead of providing an option
to add a bookmark to bookmarks, provide an option to remove the
item from bookmarks. Also display the item as the context menu
header.
Diffstat (limited to 'src/com/android')
| -rw-r--r-- | src/com/android/browser/BrowserHistoryPage.java | 30 | ||||
| -rw-r--r-- | src/com/android/browser/HistoryItem.java | 11 |
2 files changed, 34 insertions, 7 deletions
diff --git a/src/com/android/browser/BrowserHistoryPage.java b/src/com/android/browser/BrowserHistoryPage.java index d5e7049f9..335d8fe0d 100644 --- a/src/com/android/browser/BrowserHistoryPage.java +++ b/src/com/android/browser/BrowserHistoryPage.java @@ -62,6 +62,7 @@ public class BrowserHistoryPage extends ExpandableListActivity { private HistoryAdapter mAdapter; private DateSorter mDateSorter; private boolean mMaxTabsOpen; + private HistoryItem mContextHeader; private final static String LOGTAG = "browser"; @@ -166,7 +167,7 @@ public class BrowserHistoryPage extends ExpandableListActivity { } return super.onOptionsItemSelected(item); } - + @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { @@ -181,12 +182,25 @@ public class BrowserHistoryPage extends ExpandableListActivity { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.historycontext, menu); + HistoryItem historyItem = (HistoryItem) i.targetView; + // Setup the header - menu.setHeaderTitle(((HistoryItem)i.targetView).getUrl()); + if (mContextHeader == null) { + mContextHeader = new HistoryItem(this); + } else if (mContextHeader.getParent() != null) { + ((ViewGroup) mContextHeader.getParent()).removeView(mContextHeader); + } + historyItem.copyTo(mContextHeader); + menu.setHeaderView(mContextHeader); // Only show open in new tab if we have not maxed out available tabs menu.findItem(R.id.new_window_context_menu_id).setVisible(!mMaxTabsOpen); + // For a bookmark, provide the option to remove it from bookmarks + if (historyItem.isBookmark()) { + MenuItem item = menu.findItem(R.id.save_to_bookmarks_menu_id); + item.setTitle(R.string.remove_from_bookmarks); + } // decide whether to show the share link option PackageManager pm = getPackageManager(); Intent send = new Intent(Intent.ACTION_SEND); @@ -201,8 +215,9 @@ public class BrowserHistoryPage extends ExpandableListActivity { public boolean onContextItemSelected(MenuItem item) { ExpandableListContextMenuInfo i = (ExpandableListContextMenuInfo) item.getMenuInfo(); - String url = ((HistoryItem)i.targetView).getUrl(); - String title = ((HistoryItem)i.targetView).getName(); + HistoryItem historyItem = (HistoryItem) i.targetView; + String url = historyItem.getUrl(); + String title = historyItem.getName(); switch (item.getItemId()) { case R.id.open_context_menu_id: loadUrl(url, false); @@ -211,7 +226,12 @@ public class BrowserHistoryPage extends ExpandableListActivity { loadUrl(url, true); return true; case R.id.save_to_bookmarks_menu_id: - Browser.saveBookmark(this, title, url); + if (historyItem.isBookmark()) { + Bookmarks.removeFromBookmarks(this, getContentResolver(), + url); + } else { + Browser.saveBookmark(this, title, url); + } return true; case R.id.share_link_context_menu_id: Browser.sendString(this, url); diff --git a/src/com/android/browser/HistoryItem.java b/src/com/android/browser/HistoryItem.java index 8a994f37e..e8f15b1c9 100644 --- a/src/com/android/browser/HistoryItem.java +++ b/src/com/android/browser/HistoryItem.java @@ -55,7 +55,7 @@ import android.widget.TextView; }; } - void copyTo(HistoryItem item) { + /* package */ void copyTo(HistoryItem item) { item.mTextView.setText(mTextView.getText()); item.mUrlText.setText(mUrlText.getText()); item.setIsBookmark(mStar.isChecked()); @@ -63,10 +63,17 @@ import android.widget.TextView; } /** + * Whether or not this item represents a bookmarked site + */ + /* package */ boolean isBookmark() { + return mStar.isChecked(); + } + + /** * Set whether or not this represents a bookmark, and make sure the star * behaves appropriately. */ - void setIsBookmark(boolean isBookmark) { + /* package */ void setIsBookmark(boolean isBookmark) { mStar.setOnCheckedChangeListener(null); mStar.setChecked(isBookmark); mStar.setOnCheckedChangeListener(mListener); |
