summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/BrowserBookmarksPage.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/browser/BrowserBookmarksPage.java')
-rw-r--r--src/com/android/browser/BrowserBookmarksPage.java77
1 files changed, 69 insertions, 8 deletions
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index 0fc264302..caadfdda8 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -45,6 +45,8 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
+import android.view.ViewGroup.LayoutParams;
+import android.view.ViewStub;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.AdapterView;
import android.widget.GridView;
@@ -67,6 +69,8 @@ public class BrowserBookmarksPage extends Activity implements
private AddNewBookmark mAddHeader;
private boolean mCanceled = false;
private boolean mCreateShortcut;
+ private boolean mMostVisited;
+ private View mEmptyView;
// 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 =
@@ -105,12 +109,18 @@ public class BrowserBookmarksPage extends Activity implements
sendBroadcast(send);
break;
case R.id.delete_context_menu_id:
- displayRemoveBookmarkDialog(i.position);
+ if (mMostVisited) {
+ Browser.deleteFromHistory(getContentResolver(),
+ getUrl(i.position));
+ refreshList();
+ } else {
+ displayRemoveBookmarkDialog(i.position);
+ }
break;
case R.id.new_window_context_menu_id:
openInNewWindow(i.position);
break;
- case R.id.send_context_menu_id:
+ case R.id.share_link_context_menu_id:
Browser.sendString(BrowserBookmarksPage.this, getUrl(i.position));
break;
case R.id.copy_url_context_menu_id:
@@ -122,6 +132,19 @@ public class BrowserBookmarksPage extends Activity implements
Toast.makeText(this, R.string.homepage_set,
Toast.LENGTH_LONG).show();
break;
+ // Only for the Most visited page
+ case R.id.save_to_bookmarks_menu_id:
+ HistoryItem historyItem = ((HistoryItem) i.targetView);
+ // If the site is bookmarked, the item becomes remove from
+ // bookmarks.
+ if (historyItem.isBookmark()) {
+ Bookmarks.removeFromBookmarks(this, getContentResolver(),
+ historyItem.getUrl());
+ } else {
+ Browser.saveBookmark(this, historyItem.getName(),
+ historyItem.getUrl());
+ }
+ break;
default:
return super.onContextItemSelected(item);
}
@@ -135,9 +158,13 @@ public class BrowserBookmarksPage extends Activity implements
(AdapterView.AdapterContextMenuInfo) menuInfo;
MenuInflater inflater = getMenuInflater();
- inflater.inflate(R.menu.bookmarkscontext, menu);
+ if (mMostVisited) {
+ inflater.inflate(R.menu.historycontext, menu);
+ } else {
+ inflater.inflate(R.menu.bookmarkscontext, menu);
+ }
- if (0 == i.position) {
+ if (0 == i.position && !mMostVisited) {
menu.setGroupVisible(R.id.CONTEXT_MENU, false);
if (mAddHeader == null) {
mAddHeader = new AddNewBookmark(BrowserBookmarksPage.this);
@@ -149,7 +176,17 @@ public class BrowserBookmarksPage extends Activity implements
menu.setHeaderView(mAddHeader);
return;
}
- menu.setGroupVisible(R.id.ADD_MENU, false);
+ if (mMostVisited) {
+ if ((!mGridMode && ((HistoryItem) i.targetView).isBookmark())
+ || mBookmarksAdapter.getIsBookmark(i.position)) {
+ MenuItem item = menu.findItem(
+ R.id.save_to_bookmarks_menu_id);
+ item.setTitle(R.string.remove_from_bookmarks);
+ }
+ } else {
+ // The historycontext menu has no ADD_MENU group.
+ menu.setGroupVisible(R.id.ADD_MENU, false);
+ }
if (mMaxTabsOpen) {
menu.findItem(R.id.new_window_context_menu_id).setVisible(
false);
@@ -181,11 +218,18 @@ public class BrowserBookmarksPage extends Activity implements
mCreateShortcut = true;
}
mMaxTabsOpen = getIntent().getBooleanExtra("maxTabsOpen", false);
+ mMostVisited = getIntent().getBooleanExtra("mostVisited", false);
- setTitle(R.string.browser_bookmarks_page_bookmarks_text);
+ if (mCreateShortcut) {
+ setTitle(R.string.browser_bookmarks_page_bookmarks_text);
+ }
mBookmarksAdapter = new BrowserBookmarksAdapter(this,
getIntent().getStringExtra("url"),
- getIntent().getStringExtra("title"), mCreateShortcut);
+ getIntent().getStringExtra("title"), mCreateShortcut,
+ mMostVisited);
+ if (mMostVisited) {
+ mEmptyView = new ViewStub(this, R.layout.empty_history);
+ }
switchViewMode(true);
}
@@ -209,6 +253,9 @@ public class BrowserBookmarksPage extends Activity implements
mGridPage.setFocusableInTouchMode(true);
mGridPage.setSelector(android.R.drawable.gallery_thumb);
mGridPage.setVerticalSpacing(10);
+ if (mMostVisited) {
+ mGridPage.setEmptyView(mEmptyView);
+ }
if (!mCreateShortcut) {
mGridPage.setOnCreateContextMenuListener(this);
}
@@ -226,6 +273,9 @@ public class BrowserBookmarksPage extends Activity implements
listView.setDrawSelectorOnTop(false);
listView.setVerticalScrollBarEnabled(true);
listView.setOnItemClickListener(mListener);
+ if (mMostVisited) {
+ listView.setEmptyView(mEmptyView);
+ }
if (!mCreateShortcut) {
listView.setOnCreateContextMenuListener(this);
@@ -233,6 +283,10 @@ public class BrowserBookmarksPage extends Activity implements
}
setContentView(mVerticalList);
}
+ if (mMostVisited) {
+ addContentView(mEmptyView, new LayoutParams(
+ LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
+ }
}
private static final int SAVE_CURRENT_PAGE = 1000;
@@ -254,7 +308,7 @@ public class BrowserBookmarksPage extends Activity implements
return;
}
if (!mCreateShortcut) {
- if (0 == position) {
+ if (0 == position && !mMostVisited) {
// XXX: Work-around for a framework issue.
mHandler.sendEmptyMessage(SAVE_CURRENT_PAGE);
} else {
@@ -366,6 +420,9 @@ public class BrowserBookmarksPage extends Activity implements
if (!mCreateShortcut) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.bookmarks, menu);
+ // Most visited page does not have an option to bookmark the last
+ // viewed page.
+ menu.findItem(R.id.new_context_menu_id).setVisible(!mMostVisited);
return true;
}
return result;
@@ -373,6 +430,10 @@ public class BrowserBookmarksPage extends Activity implements
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
+ if (mBookmarksAdapter.getCount() == 0) {
+ // No need to show the menu if there are no items.
+ return false;
+ }
menu.findItem(R.id.switch_mode_menu_id).setTitle(
mGridMode ? R.string.switch_to_list
: R.string.switch_to_thumbnails);