@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.browser_view); initView(); initData(); }
@Override public boolean onContextItemSelected(MenuItem item) { // It is possible that the view has been canceled when we get to // this point as back has a higher priority if (mCanceled) { return true; } AdapterView.AdapterContextMenuInfo i = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); // If we have no menu info, we can't tell which item was selected. if (i == null) { return true; } switch (item.getItemId()) { case R.id.new_context_menu_id: saveCurrentPage(); break; case R.id.open_context_menu_id: loadUrl(i.position); break; case R.id.edit_context_menu_id: editBookmark(i.position); break; case R.id.shortcut_context_menu_id: final Intent send = createShortcutIntent(i.position); send.setAction(INSTALL_SHORTCUT); sendBroadcast(send); break; case R.id.delete_context_menu_id: 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.share_link_context_menu_id: BrowserActivity.sharePage( BrowserBookmarksPage.this, mBookmarksAdapter.getTitle(i.position), getUrl(i.position), getFavicon(i.position), mBookmarksAdapter.getScreenshot(i.position)); break; case R.id.copy_url_context_menu_id: copy(getUrl(i.position)); break; case R.id.homepage_context_menu_id: BrowserSettings.getInstance().setHomePage(this, getUrl(i.position)); 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: boolean isBookmark; String name; String url; if (mViewMode == BookmarkViewMode.GRID) { isBookmark = mBookmarksAdapter.getIsBookmark(i.position); name = mBookmarksAdapter.getTitle(i.position); url = mBookmarksAdapter.getUrl(i.position); } else { HistoryItem historyItem = ((HistoryItem) i.targetView); isBookmark = historyItem.isBookmark(); name = historyItem.getName(); url = historyItem.getUrl(); } // If the site is bookmarked, the item becomes remove from // bookmarks. if (isBookmark) { Bookmarks.removeFromBookmarks(this, getContentResolver(), url, name); } else { Browser.saveBookmark(this, name, url); } break; default: return super.onContextItemSelected(item); } return true; }
/** Set the ContentView to be either the grid of thumbnails or the vertical list. */ private void switchViewMode(BookmarkViewMode viewMode) { if (mViewMode == viewMode) { return; } mViewMode = viewMode; // Update the preferences to make the new view mode sticky. Editor ed = getPreferences(MODE_PRIVATE).edit(); if (mMostVisited) { ed.putInt(PREF_MOST_VISITED_VIEW_MODE, mViewMode.ordinal()); } else { ed.putInt(PREF_BOOKMARK_VIEW_MODE, mViewMode.ordinal()); } ed.apply(); if (mBookmarksAdapter != null) { mBookmarksAdapter.switchViewMode(viewMode); } if (mViewMode == BookmarkViewMode.GRID) { if (mGridPage == null) { mGridPage = new GridView(this); if (mBookmarksAdapter != null) { mGridPage.setAdapter(mBookmarksAdapter); } mGridPage.setOnItemClickListener(mListener); mGridPage.setNumColumns(GridView.AUTO_FIT); mGridPage.setColumnWidth(BrowserActivity.getDesiredThumbnailWidth(this)); mGridPage.setFocusable(true); mGridPage.setFocusableInTouchMode(true); mGridPage.setSelector(android.R.drawable.gallery_thumb); float density = getResources().getDisplayMetrics().density; mGridPage.setVerticalSpacing((int) (14 * density)); mGridPage.setHorizontalSpacing((int) (8 * density)); mGridPage.setStretchMode(GridView.STRETCH_SPACING); mGridPage.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET); mGridPage.setDrawSelectorOnTop(true); if (mMostVisited) { mGridPage.setEmptyView(mEmptyView); } if (!mCreateShortcut) { mGridPage.setOnCreateContextMenuListener(this); } } addContentView(mGridPage, FULL_SCREEN_PARAMS); if (mVerticalList != null) { ViewGroup parent = (ViewGroup) mVerticalList.getParent(); if (parent != null) { parent.removeView(mVerticalList); } } } else { if (null == mVerticalList) { ListView listView = new ListView(this); if (mBookmarksAdapter != null) { listView.setAdapter(mBookmarksAdapter); } listView.setDrawSelectorOnTop(false); listView.setVerticalScrollBarEnabled(true); listView.setOnItemClickListener(mListener); if (mMostVisited) { listView.setEmptyView(mEmptyView); } if (!mCreateShortcut) { listView.setOnCreateContextMenuListener(this); } mVerticalList = listView; } addContentView(mVerticalList, FULL_SCREEN_PARAMS); if (mGridPage != null) { ViewGroup parent = (ViewGroup) mGridPage.getParent(); if (parent != null) { parent.removeView(mGridPage); } } } }