diff options
author | John Reck <jreck@google.com> | 2011-06-20 13:00:12 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2011-06-20 13:21:56 -0700 |
commit | 9db9529bdb7490ccd72fbe66f7e9c9d7cdd73899 (patch) | |
tree | 323b6720146f40e7cf44a0726bb2021e71c64315 /src/com/android/browser/view | |
parent | b6f83376eaf0766a8e5aa6eeb06976f463f37ea0 (diff) | |
download | android_packages_apps_Gello-9db9529bdb7490ccd72fbe66f7e9c9d7cdd73899.tar.gz android_packages_apps_Gello-9db9529bdb7490ccd72fbe66f7e9c9d7cdd73899.tar.bz2 android_packages_apps_Gello-9db9529bdb7490ccd72fbe66f7e9c9d7cdd73899.zip |
Re-enable list view mode
Bug: 4645489
Change-Id: Id6eab53a6cb73083781c96a41bfeffec6eae0498
Diffstat (limited to 'src/com/android/browser/view')
-rw-r--r-- | src/com/android/browser/view/BookmarkExpandableView.java (renamed from src/com/android/browser/view/BookmarkExpandableGridView.java) | 62 |
1 files changed, 48 insertions, 14 deletions
diff --git a/src/com/android/browser/view/BookmarkExpandableGridView.java b/src/com/android/browser/view/BookmarkExpandableView.java index c8811d1c..6f5fdaa9 100644 --- a/src/com/android/browser/view/BookmarkExpandableGridView.java +++ b/src/com/android/browser/view/BookmarkExpandableView.java @@ -38,6 +38,7 @@ import com.android.browser.BookmarkDragHandler.BookmarkDragAdapter; import com.android.browser.BookmarkDragHandler.BookmarkDragState; import com.android.browser.BreadCrumbView; import com.android.browser.BrowserBookmarksAdapter; +import com.android.browser.BrowserBookmarksPage; import com.android.browser.BrowserBookmarksPage.ExtraDragState; import com.android.browser.R; import com.android.internal.view.menu.MenuBuilder; @@ -45,7 +46,7 @@ import com.android.internal.view.menu.MenuBuilder; import java.util.ArrayList; import java.util.HashMap; -public class BookmarkExpandableGridView extends ExpandableListView +public class BookmarkExpandableView extends ExpandableListView implements BreadCrumbView.Controller { private BookmarkAccountAdapter mAdapter; @@ -58,18 +59,19 @@ public class BookmarkExpandableGridView extends ExpandableListView private BreadCrumbView.Controller mBreadcrumbController; private BookmarkDragHandler mDragHandler; private int mMaxColumnCount; + private int mCurrentView = -1; - public BookmarkExpandableGridView(Context context) { + public BookmarkExpandableView(Context context) { super(context); init(context); } - public BookmarkExpandableGridView(Context context, AttributeSet attrs) { + public BookmarkExpandableView(Context context, AttributeSet attrs) { super(context, attrs); init(context); } - public BookmarkExpandableGridView( + public BookmarkExpandableView( Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(context); @@ -131,6 +133,9 @@ public class BookmarkExpandableGridView extends ExpandableListView adapter.registerDataSetObserver(mAdapter.mObserver); } } else { + if (mCurrentView >= 0) { + adapter.selectView(mCurrentView); + } mAdapter.mGroups.add(accountName); mAdapter.mChildren.add(adapter); adapter.registerDataSetObserver(mAdapter.mObserver); @@ -224,7 +229,7 @@ public class BookmarkExpandableGridView extends ExpandableListView extraState.childPosition, extraState.groupPosition); if (getParent() != null) { - getParent().showContextMenuForChild(BookmarkExpandableGridView.this); + getParent().showContextMenuForChild(BookmarkExpandableView.this); } } @@ -252,7 +257,7 @@ public class BookmarkExpandableGridView extends ExpandableListView int childPosition = (Integer) v.getTag(R.id.child_position); long id = (Long) v.getTag(R.id.child_id); if (mOnChildClickListener != null) { - mOnChildClickListener.onChildClick(BookmarkExpandableGridView.this, + mOnChildClickListener.onChildClick(BookmarkExpandableView.this, v, groupPosition, childPosition, id); } } @@ -289,6 +294,14 @@ public class BookmarkExpandableGridView extends ExpandableListView return mAdapter.getBreadCrumbView(groupPosition); } + public void selectView(int view) { + mCurrentView = view; + for (BrowserBookmarksAdapter adapter : mAdapter.mChildren) { + adapter.selectView(mCurrentView); + } + mAdapter.notifyDataSetChanged(); + } + class BookmarkAccountAdapter extends BaseExpandableListAdapter { ArrayList<BrowserBookmarksAdapter> mChildren; ArrayList<String> mGroups; @@ -339,17 +352,21 @@ public class BookmarkExpandableGridView extends ExpandableListView if (convertView == null) { convertView = mInflater.inflate(R.layout.bookmark_grid_row, parent, false); } + BrowserBookmarksAdapter childAdapter = mChildren.get(groupPosition); + int rowCount = mRowCount; + if (childAdapter.getViewMode() == BrowserBookmarksPage.VIEW_LIST) { + rowCount = 1; + } LinearLayout row = (LinearLayout) convertView; - if (row.getChildCount() > mRowCount) { - row.removeViews(mRowCount, row.getChildCount() - mRowCount); + if (row.getChildCount() > rowCount) { + row.removeViews(rowCount, row.getChildCount() - rowCount); } - for (int i = 0; i < mRowCount; i++) { + for (int i = 0; i < rowCount; i++) { View cv = null; if (row.getChildCount() > i) { cv = row.getChildAt(i); } - int realChildPosition = (childPosition * mRowCount) + i; - BrowserBookmarksAdapter childAdapter = mChildren.get(groupPosition); + int realChildPosition = (childPosition * rowCount) + i; if (realChildPosition < childAdapter.getCount()) { View v = childAdapter.getView(realChildPosition, cv, row); v.setTag(R.id.group_position, groupPosition); @@ -378,8 +395,11 @@ public class BookmarkExpandableGridView extends ExpandableListView @Override public int getChildrenCount(int groupPosition) { - return (int) Math.ceil( - mChildren.get(groupPosition).getCount() / (float)mRowCount); + BrowserBookmarksAdapter adapter = mChildren.get(groupPosition); + if (adapter.getViewMode() == BrowserBookmarksPage.VIEW_LIST) { + return adapter.getCount(); + } + return (int) Math.ceil(adapter.getCount() / (float)mRowCount); } @Override @@ -443,7 +463,7 @@ public class BookmarkExpandableGridView extends ExpandableListView if (crumbs == null) { crumbs = (BreadCrumbView) mInflater.inflate(R.layout.bookmarks_header, null); - crumbs.setController(BookmarkExpandableGridView.this); + crumbs.setController(BookmarkExpandableView.this); crumbs.setUseBackButton(true); crumbs.setMaxVisible(2); String bookmarks = mContext.getString(R.string.bookmarks); @@ -464,6 +484,20 @@ public class BookmarkExpandableGridView extends ExpandableListView public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } + + @Override + public int getChildTypeCount() { + return 2; + } + + @Override + public int getChildType(int groupPosition, int childPosition) { + BrowserBookmarksAdapter adapter = mChildren.get(groupPosition); + if (adapter.getViewMode() == BrowserBookmarksPage.VIEW_LIST) { + return 1; + } + return 0; + } } public static class BookmarkContextMenuInfo implements ContextMenuInfo { |