diff options
author | John Reck <jreck@google.com> | 2010-11-24 15:45:54 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-11-24 15:45:54 -0800 |
commit | 11495d1260e0b5a9bbb0e6d4931d1c35c51da366 (patch) | |
tree | 8028781d9d18b15f8a6cb7aea261d9a577d21ead /src/com/android/browser/CombinedBookmarkHistoryView.java | |
parent | 99252729280497f2bc05da67941c5ec1ead0f0ae (diff) | |
parent | 608baa78f4071409294f79b37e7ffa9ca96c4223 (diff) | |
download | packages_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.java | 97 |
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; } - } |