summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/BrowserBookmarksPage.java
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2010-12-01 10:10:14 -0800
committerJohn Reck <jreck@google.com>2010-12-03 12:51:29 -0800
commit89f73c1146f474641881e3e20c77cfbfc18fa313 (patch)
tree6e5f3a932358d64c58bd065683a3f6ecc5cb2b31 /src/com/android/browser/BrowserBookmarksPage.java
parentc2f83b3d2c9c2e086b17ffecd8fbeb031ff04f06 (diff)
downloadpackages_apps_browser-89f73c1146f474641881e3e20c77cfbfc18fa313.zip
packages_apps_browser-89f73c1146f474641881e3e20c77cfbfc18fa313.tar.gz
packages_apps_browser-89f73c1146f474641881e3e20c77cfbfc18fa313.tar.bz2
Bookmarks page UI updates
Bug: 3248628 Updates the bookmark page UI based off of the newest UI design document. Change-Id: I26447b7e1c38798b3c229c9d8c10af2565458a7b
Diffstat (limited to 'src/com/android/browser/BrowserBookmarksPage.java')
-rw-r--r--src/com/android/browser/BrowserBookmarksPage.java115
1 files changed, 64 insertions, 51 deletions
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index 74385f9..13a0101 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -56,7 +56,6 @@ import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.GridView;
import android.widget.ListView;
-import android.widget.PopupMenu;
import android.widget.PopupMenu.OnMenuItemClickListener;
import android.widget.TextView;
import android.widget.Toast;
@@ -66,6 +65,7 @@ interface BookmarksPageCallbacks {
boolean onBookmarkSelected(Cursor c, boolean isFolder);
// Return true if handled
boolean onOpenInNewWindow(Cursor c);
+ void onFolderChanged(int level, Uri uri);
}
/**
@@ -103,10 +103,12 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
View mEmptyView;
int mCurrentView;
View mHeader;
- View mRootFolderView;
ViewGroup mHeaderContainer;
BreadCrumbView mCrumbs;
TextView mSelectBookmarkView;
+ int mCrumbVisibility = View.VISIBLE;
+ int mCrumbMaxVisible = -1;
+ boolean mCrumbBackButton = false;
static BrowserBookmarksPage newInstance(BookmarksPageCallbacks cb,
Bundle args, ViewGroup headerContainer) {
@@ -242,20 +244,6 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
return -1;
}
- public void onFolderChange(int level, Object data) {
- Uri uri = (Uri) data;
- if (uri == null) {
- // top level
- uri = BrowserContract.Bookmarks.CONTENT_URI_DEFAULT_FOLDER;
- }
- LoaderManager manager = getLoaderManager();
- BookmarksLoader loader =
- (BookmarksLoader) ((Loader<?>) manager.getLoader(LOADER_BOOKMARKS));
- loader.setUri(uri);
- loader.forceLoad();
-
- }
-
@Override
public boolean onContextItemSelected(MenuItem item) {
final Activity activity = getActivity();
@@ -420,11 +408,16 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
mHeader = inflater.inflate(R.layout.bookmarks_header, hc, true);
mCrumbs = (BreadCrumbView) mHeader.findViewById(R.id.crumbs);
mCrumbs.setController(this);
+ mCrumbs.setUseBackButton(mCrumbBackButton);
+ mCrumbs.setMaxVisible(mCrumbMaxVisible);
+ mCrumbs.setVisibility(mCrumbVisibility);
+ String name = getString(R.string.bookmarks);
+ mCrumbs.pushView(name, false, BrowserContract.Bookmarks.CONTENT_URI_DEFAULT_FOLDER);
+ if (mCallbacks != null) {
+ mCallbacks.onFolderChanged(1, BrowserContract.Bookmarks.CONTENT_URI_DEFAULT_FOLDER);
+ }
mSelectBookmarkView = (TextView) mHeader.findViewById(R.id.select_bookmark_view);
mSelectBookmarkView.setOnClickListener(this);
- mRootFolderView = mHeader.findViewById(R.id.root_folder);
- mRootFolderView.setOnClickListener(this);
- setShowRootFolder(mShowRootFolder);
// Start the loaders
LoaderManager lm = getLoaderManager();
@@ -432,9 +425,9 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
mCurrentView =
prefs.getInt(PREF_SELECTED_VIEW, BrowserBookmarksPage.VIEW_THUMBNAILS);
if (mCurrentView == BrowserBookmarksPage.VIEW_THUMBNAILS) {
- mSelectBookmarkView.setText(R.string.bookmark_thumbnail_view);
- } else {
mSelectBookmarkView.setText(R.string.bookmark_list_view);
+ } else {
+ mSelectBookmarkView.setText(R.string.bookmark_thumbnail_view);
}
mAdapter = new BrowserBookmarksAdapter(getActivity(), mCurrentView);
String accountType = prefs.getString(PREF_ACCOUNT_TYPE, DEFAULT_ACCOUNT);
@@ -459,17 +452,6 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
return root;
}
- public void setShowRootFolder(boolean show) {
- mShowRootFolder = show;
- if (mRootFolderView != null) {
- if (mShowRootFolder) {
- mRootFolderView.setVisibility(View.VISIBLE);
- } else {
- mRootFolderView.setVisibility(View.GONE);
- }
- }
- }
-
@Override
public void onDestroyView() {
super.onDestroyView();
@@ -505,17 +487,13 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
if (isFolder) {
String title = cursor.getString(BookmarksLoader.COLUMN_INDEX_TITLE);
- LoaderManager manager = getLoaderManager();
- BookmarksLoader loader =
- (BookmarksLoader) ((Loader<?>) manager.getLoader(LOADER_BOOKMARKS));
Uri uri = ContentUris.withAppendedId(
BrowserContract.Bookmarks.CONTENT_URI_DEFAULT_FOLDER, id);
if (mCrumbs != null) {
// update crumbs
mCrumbs.pushView(title, uri);
}
- loader.setUri(uri);
- loader.forceLoad();
+ loadFolder(uri);
}
}
@@ -636,6 +614,11 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
return;
}
mCurrentView = view;
+ if (mCurrentView == BrowserBookmarksPage.VIEW_THUMBNAILS) {
+ mSelectBookmarkView.setText(R.string.bookmark_list_view);
+ } else {
+ mSelectBookmarkView.setText(R.string.bookmark_thumbnail_view);
+ }
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
Editor edit = prefs.edit();
edit.putInt(PREF_SELECTED_VIEW, mCurrentView);
@@ -664,28 +647,39 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
}
}
- public BreadCrumbView getBreadCrumb() {
- return mCrumbs;
- }
-
/**
* BreadCrumb controller callback
*/
@Override
public void onTop(int level, Object data) {
- onFolderChange(level, data);
+ Uri uri = (Uri) data;
+ if (uri == null) {
+ // top level
+ uri = BrowserContract.Bookmarks.CONTENT_URI_DEFAULT_FOLDER;
+ }
+ loadFolder(uri);
+ }
+
+ /**
+ * @param uri
+ */
+ private void loadFolder(Uri uri) {
+ LoaderManager manager = getLoaderManager();
+ BookmarksLoader loader =
+ (BookmarksLoader) ((Loader<?>) manager.getLoader(LOADER_BOOKMARKS));
+ loader.setUri(uri);
+ loader.forceLoad();
+ if (mCallbacks != null) {
+ mCallbacks.onFolderChanged(mCrumbs.getTopLevel(), uri);
+ }
}
@Override
public void onClick(View view) {
if (mSelectBookmarkView == view) {
- PopupMenu popup = new PopupMenu(getActivity(), mSelectBookmarkView);
- popup.getMenuInflater().inflate(R.menu.bookmark_view,
- popup.getMenu());
- popup.setOnMenuItemClickListener(this);
- popup.show();
- } else if (mRootFolderView == view) {
- mCrumbs.clear();
+ selectView(mCurrentView == BrowserBookmarksPage.VIEW_LIST
+ ? BrowserBookmarksPage.VIEW_THUMBNAILS
+ : BrowserBookmarksPage.VIEW_LIST);
}
}
@@ -693,11 +687,9 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.list_view:
- mSelectBookmarkView.setText(R.string.bookmark_list_view);
selectView(BrowserBookmarksPage.VIEW_LIST);
return true;
case R.id.thumbnail_view:
- mSelectBookmarkView.setText(R.string.bookmark_thumbnail_view);
selectView(BrowserBookmarksPage.VIEW_THUMBNAILS);
return true;
}
@@ -768,4 +760,25 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
}
}
}
+
+ public void setBreadCrumbVisibility(int visibility) {
+ mCrumbVisibility = visibility;
+ if (mCrumbs != null) {
+ mCrumbs.setVisibility(mCrumbVisibility);
+ }
+ }
+
+ public void setBreadCrumbUseBackButton(boolean use) {
+ mCrumbBackButton = use;
+ if (mCrumbs != null) {
+ mCrumbs.setUseBackButton(mCrumbBackButton);
+ }
+ }
+
+ public void setBreadCrumbMaxVisible(int max) {
+ mCrumbMaxVisible = max;
+ if (mCrumbs != null) {
+ mCrumbs.setMaxVisible(mCrumbMaxVisible);
+ }
+ }
}