summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/CombinedBookmarkHistoryView.java
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2010-11-24 15:45:54 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-11-24 15:45:54 -0800
commit11495d1260e0b5a9bbb0e6d4931d1c35c51da366 (patch)
tree8028781d9d18b15f8a6cb7aea261d9a577d21ead /src/com/android/browser/CombinedBookmarkHistoryView.java
parent99252729280497f2bc05da67941c5ec1ead0f0ae (diff)
parent608baa78f4071409294f79b37e7ffa9ca96c4223 (diff)
downloadpackages_apps_Browser-11495d1260e0b5a9bbb0e6d4931d1c35c51da366.zip
packages_apps_Browser-11495d1260e0b5a9bbb0e6d4931d1c35c51da366.tar.gz
packages_apps_Browser-11495d1260e0b5a9bbb0e6d4931d1c35c51da366.tar.bz2
Merge "Refactor Bookmark fragment, fixes NPE"
Diffstat (limited to 'src/com/android/browser/CombinedBookmarkHistoryView.java')
-rw-r--r--src/com/android/browser/CombinedBookmarkHistoryView.java97
1 files changed, 33 insertions, 64 deletions
diff --git a/src/com/android/browser/CombinedBookmarkHistoryView.java b/src/com/android/browser/CombinedBookmarkHistoryView.java
index 9ac357f..15f31f6 100644
--- a/src/com/android/browser/CombinedBookmarkHistoryView.java
+++ b/src/com/android/browser/CombinedBookmarkHistoryView.java
@@ -21,22 +21,19 @@ import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
-import android.content.SharedPreferences;
import android.content.res.Resources;
+import android.database.Cursor;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Bundle;
-import android.preference.PreferenceManager;
import android.provider.Browser;
import android.view.LayoutInflater;
-import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
+import android.view.ViewGroup;
import android.webkit.WebIconDatabase;
import android.webkit.WebIconDatabase.IconListener;
import android.widget.LinearLayout;
-import android.widget.PopupMenu;
-import android.widget.PopupMenu.OnMenuItemClickListener;
import android.widget.TextView;
import java.util.HashMap;
@@ -49,7 +46,7 @@ interface BookmarksHistoryCallbacks {
}
public class CombinedBookmarkHistoryView extends LinearLayout
- implements OnClickListener, BreadCrumbView.Controller, OnMenuItemClickListener {
+ implements OnClickListener {
final static String STARTING_FRAGMENT = "fragment";
@@ -64,12 +61,11 @@ public class CombinedBookmarkHistoryView extends LinearLayout
long mCurrentFragment;
View mTabs;
- BreadCrumbView mCrumbs;
TextView mTabBookmarks;
TextView mTabHistory;
TextView mAddBookmark;
- TextView mSelectBookmarkView;
View mSeperateSelectAdd;
+ ViewGroup mBookmarksHeader;
BrowserBookmarksPage mBookmarks;
BrowserHistoryPage mHistory;
@@ -123,26 +119,15 @@ public class CombinedBookmarkHistoryView extends LinearLayout
// setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
mTabs = findViewById(R.id.tabs);
- mCrumbs = (BreadCrumbView) findViewById(R.id.crumbs);
- mCrumbs.setController(this);
+ mBookmarksHeader = (ViewGroup) findViewById(R.id.header_container);
mTabBookmarks = (TextView) findViewById(R.id.bmtab);
mTabHistory = (TextView) findViewById(R.id.historytab);
mAddBookmark = (TextView) findViewById(R.id.addbm);
mSeperateSelectAdd = findViewById(R.id.seperate_select_add);
- mSelectBookmarkView = (TextView) findViewById(R.id.select_bookmark_view);
mAddBookmark.setOnClickListener(this);
mTabHistory.setOnClickListener(this);
mTabBookmarks.setOnClickListener(this);
- mSelectBookmarkView.setOnClickListener(this);
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
- int bookmarksView =
- prefs.getInt(BrowserBookmarksPage.PREF_SELECTED_VIEW, BrowserBookmarksPage.VIEW_THUMBNAILS);
- if (bookmarksView == BrowserBookmarksPage.VIEW_THUMBNAILS) {
- mSelectBookmarkView.setText(R.string.bookmark_thumbnail_view);
- } else {
- mSelectBookmarkView.setText(R.string.bookmark_list_view);
- }
// Start up the default fragment
initFragments(mExtras);
loadFragment(startingFragment, mExtras, false);
@@ -164,8 +149,26 @@ public class CombinedBookmarkHistoryView extends LinearLayout
}
+ private BookmarksPageCallbacks mBookmarkCallbackWrapper = new BookmarksPageCallbacks() {
+ @Override
+ public boolean onOpenInNewWindow(Cursor c) {
+ mUiController.onUrlSelected(BrowserBookmarksPage.getUrl(c), true);
+ return true;
+ }
+
+ @Override
+ public boolean onBookmarkSelected(Cursor c, boolean isFolder) {
+ if (isFolder) {
+ return false;
+ }
+ mUiController.onUrlSelected(BrowserBookmarksPage.getUrl(c), false);
+ return true;
+ }
+ };
+
private void initFragments(Bundle extras) {
- mBookmarks = BrowserBookmarksPage.newInstance(mUiController, mCrumbs, extras);
+ mBookmarks = BrowserBookmarksPage.newInstance(mBookmarkCallbackWrapper,
+ extras, mBookmarksHeader);
mHistory = BrowserHistoryPage.newInstance(mUiController, extras);
}
@@ -176,17 +179,12 @@ public class CombinedBookmarkHistoryView extends LinearLayout
case FRAGMENT_ID_BOOKMARKS:
fragment = mBookmarks;
mSeperateSelectAdd.setVisibility(View.VISIBLE);
- mSelectBookmarkView.setVisibility(View.VISIBLE);
- mCrumbs.setVisibility(View.VISIBLE);
- if (notify) {
- mCrumbs.notifyController();
- }
+ mBookmarksHeader.setVisibility(View.VISIBLE);
break;
case FRAGMENT_ID_HISTORY:
fragment = mHistory;
- mCrumbs.setVisibility(View.GONE);
- mSeperateSelectAdd.setVisibility(View.GONE);
- mSelectBookmarkView.setVisibility(View.GONE);
+ mBookmarksHeader.setVisibility(View.INVISIBLE);
+ mSeperateSelectAdd.setVisibility(View.INVISIBLE);
break;
default:
throw new IllegalArgumentException();
@@ -220,52 +218,23 @@ public class CombinedBookmarkHistoryView extends LinearLayout
if (mCurrentFragment != FRAGMENT_ID_BOOKMARKS) {
loadFragment(FRAGMENT_ID_BOOKMARKS, mExtras, true);
} else {
- mCrumbs.clear();
+ BreadCrumbView crumbs = mBookmarks.getBreadCrumb();
+ if (crumbs != null) {
+ crumbs.clear();
+ }
}
} else if (mAddBookmark == view) {
mUiController.bookmarkCurrentPage(mBookmarks.getFolderId());
- } else if (mSelectBookmarkView == view) {
- PopupMenu popup = new PopupMenu(mContext, mSelectBookmarkView);
- popup.getMenuInflater().inflate(R.menu.bookmark_view,
- popup.getMenu());
- popup.setOnMenuItemClickListener(this);
- popup.show();
}
}
/**
- * BreadCrumb controller callback
- */
- @Override
- public void onTop(int level, Object data) {
- mBookmarks.onFolderChange(level, data);
- }
-
- /**
* callback for back key presses
*/
boolean onBackPressed() {
- if ((mCurrentFragment == FRAGMENT_ID_BOOKMARKS) &&
- (mCrumbs.size() > 0)) {
- mCrumbs.popView();
- return true;
- }
- return false;
- }
-
- @Override
- public boolean onMenuItemClick(MenuItem item) {
- switch (item.getItemId()) {
- case R.id.list_view:
- mSelectBookmarkView.setText(R.string.bookmark_list_view);
- mBookmarks.selectView(BrowserBookmarksPage.VIEW_LIST);
- return true;
- case R.id.thumbnail_view:
- mSelectBookmarkView.setText(R.string.bookmark_thumbnail_view);
- mBookmarks.selectView(BrowserBookmarksPage.VIEW_THUMBNAILS);
- return true;
+ if (mCurrentFragment == FRAGMENT_ID_BOOKMARKS) {
+ return mBookmarks.onBackPressed();
}
return false;
}
-
}