| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.bookmarks; | 5 package org.chromium.chrome.browser.bookmarks; |
| 6 | 6 |
| 7 import android.content.Context; | 7 import android.content.Context; |
| 8 import android.support.v7.widget.RecyclerView; | 8 import android.support.v7.widget.RecyclerView; |
| 9 import android.support.v7.widget.RecyclerView.ViewHolder; | 9 import android.support.v7.widget.RecyclerView.ViewHolder; |
| 10 import android.text.TextUtils; | 10 import android.text.TextUtils; |
| 11 import android.view.LayoutInflater; | 11 import android.view.LayoutInflater; |
| 12 import android.view.View; | 12 import android.view.View; |
| 13 import android.view.ViewGroup; | 13 import android.view.ViewGroup; |
| 14 | 14 |
| 15 import org.chromium.base.VisibleForTesting; | 15 import org.chromium.base.VisibleForTesting; |
| 16 import org.chromium.base.annotations.SuppressFBWarnings; | 16 import org.chromium.base.annotations.SuppressFBWarnings; |
| 17 import org.chromium.chrome.R; | 17 import org.chromium.chrome.R; |
| 18 import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkItem; | 18 import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkItem; |
| 19 import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkModelObserve
r; | 19 import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkModelObserve
r; |
| 20 import org.chromium.chrome.browser.bookmarks.BookmarkPromoHeader.PromoHeaderShow
ingChangeListener; | 20 import org.chromium.chrome.browser.bookmarks.BookmarkPromoHeader.PromoHeaderShow
ingChangeListener; |
| 21 import org.chromium.components.bookmarks.BookmarkId; | 21 import org.chromium.components.bookmarks.BookmarkId; |
| 22 import org.chromium.ui.base.DeviceFormFactor; | |
| 23 | 22 |
| 24 import java.util.ArrayList; | 23 import java.util.ArrayList; |
| 25 import java.util.List; | 24 import java.util.List; |
| 26 | 25 |
| 27 /** | 26 /** |
| 28 * BaseAdapter for {@link RecyclerView}. It manages bookmarks to list there. | 27 * BaseAdapter for {@link RecyclerView}. It manages bookmarks to list there. |
| 29 */ | 28 */ |
| 30 class BookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
implements | 29 class BookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
implements |
| 31 BookmarkUIObserver, PromoHeaderShowingChangeListener { | 30 BookmarkUIObserver, PromoHeaderShowingChangeListener { |
| 32 private static final int PROMO_HEADER_VIEW = 0; | 31 private static final int PROMO_HEADER_VIEW = 0; |
| 33 private static final int FOLDER_VIEW = 1; | 32 private static final int FOLDER_VIEW = 1; |
| 34 private static final int DIVIDER_VIEW = 2; | 33 private static final int BOOKMARK_VIEW = 2; |
| 35 private static final int BOOKMARK_VIEW = 3; | |
| 36 | 34 |
| 37 private static final int MAXIMUM_NUMBER_OF_SEARCH_RESULTS = 500; | 35 private static final int MAXIMUM_NUMBER_OF_SEARCH_RESULTS = 500; |
| 38 private static final String EMPTY_QUERY = null; | 36 private static final String EMPTY_QUERY = null; |
| 39 | 37 |
| 38 private final List<List<? extends Object>> mSections; |
| 39 private final List<Object> mPromoHeaderSection = new ArrayList<>(); |
| 40 private final List<BookmarkId> mFolderSection = new ArrayList<>(); |
| 41 private final List<BookmarkId> mBookmarkSection = new ArrayList<>(); |
| 42 |
| 43 private final List<BookmarkRow> mBookmarkRows = new ArrayList<>(); |
| 44 private final List<BookmarkRow> mFolderRows = new ArrayList<>(); |
| 45 |
| 46 private final List<BookmarkId> mTopLevelFolders = new ArrayList<>(); |
| 47 |
| 40 private BookmarkDelegate mDelegate; | 48 private BookmarkDelegate mDelegate; |
| 41 private Context mContext; | 49 private Context mContext; |
| 42 private BookmarkPromoHeader mPromoHeaderManager; | 50 private BookmarkPromoHeader mPromoHeaderManager; |
| 43 private boolean mShouldShowDividers; | |
| 44 private String mSearchText; | 51 private String mSearchText; |
| 45 | 52 |
| 46 private List<List<? extends Object>> mSections; | |
| 47 private List<Object> mPromoHeaderSection = new ArrayList<>(); | |
| 48 private List<Object> mFolderDividerSection; | |
| 49 private List<BookmarkId> mFolderSection = new ArrayList<>(); | |
| 50 private List<Object> mBookmarkDividerSection; | |
| 51 private List<BookmarkId> mBookmarkSection = new ArrayList<>(); | |
| 52 | |
| 53 private List<BookmarkRow> mBookmarkRows = new ArrayList<>(); | |
| 54 private List<BookmarkRow> mFolderRows = new ArrayList<>(); | |
| 55 | |
| 56 private BookmarkModelObserver mBookmarkModelObserver = new BookmarkModelObse
rver() { | 53 private BookmarkModelObserver mBookmarkModelObserver = new BookmarkModelObse
rver() { |
| 57 @Override | 54 @Override |
| 58 public void bookmarkNodeChanged(BookmarkItem node) { | 55 public void bookmarkNodeChanged(BookmarkItem node) { |
| 59 assert mDelegate != null; | 56 assert mDelegate != null; |
| 60 int position = getPositionForBookmark(node.getId()); | 57 int position = getPositionForBookmark(node.getId()); |
| 61 if (position >= 0) notifyItemChanged(position); | 58 if (position >= 0) notifyItemChanged(position); |
| 62 } | 59 } |
| 63 | 60 |
| 64 @Override | 61 @Override |
| 65 public void bookmarkNodeRemoved(BookmarkItem parent, int oldIndex, Bookm
arkItem node, | 62 public void bookmarkNodeRemoved(BookmarkItem parent, int oldIndex, Bookm
arkItem node, |
| (...skipping 17 matching lines...) Expand all Loading... |
| 83 if (mDelegate.getCurrentState() == BookmarkUIState.STATE_SEARCHING | 80 if (mDelegate.getCurrentState() == BookmarkUIState.STATE_SEARCHING |
| 84 && !TextUtils.equals(mSearchText, EMPTY_QUERY)) { | 81 && !TextUtils.equals(mSearchText, EMPTY_QUERY)) { |
| 85 search(mSearchText); | 82 search(mSearchText); |
| 86 } | 83 } |
| 87 } | 84 } |
| 88 }; | 85 }; |
| 89 | 86 |
| 90 BookmarkItemsAdapter(Context context) { | 87 BookmarkItemsAdapter(Context context) { |
| 91 mContext = context; | 88 mContext = context; |
| 92 | 89 |
| 93 // TODO(twellington): remove dividers entirely after the bookmarks 720dp
layout is restyled | |
| 94 // to match the < 720dp style. | |
| 95 mShouldShowDividers = DeviceFormFactor.isLargeTablet(context); | |
| 96 | |
| 97 mSections = new ArrayList<>(); | 90 mSections = new ArrayList<>(); |
| 98 mSections.add(mPromoHeaderSection); | 91 mSections.add(mPromoHeaderSection); |
| 99 | |
| 100 if (mShouldShowDividers) { | |
| 101 mFolderDividerSection = new ArrayList<>(); | |
| 102 mSections.add(mFolderDividerSection); | |
| 103 } | |
| 104 | |
| 105 mSections.add(mFolderSection); | 92 mSections.add(mFolderSection); |
| 106 | |
| 107 if (mShouldShowDividers) { | |
| 108 mBookmarkDividerSection = new ArrayList<>(); | |
| 109 mSections.add(mBookmarkDividerSection); | |
| 110 } | |
| 111 | |
| 112 mSections.add(mBookmarkSection); | 93 mSections.add(mBookmarkSection); |
| 113 } | 94 } |
| 114 | 95 |
| 115 BookmarkId getItem(int position) { | 96 BookmarkId getItem(int position) { |
| 116 return (BookmarkId) getSection(position).get(toSectionPosition(position)
); | 97 return (BookmarkId) getSection(position).get(toSectionPosition(position)
); |
| 117 } | 98 } |
| 118 | 99 |
| 119 private int toSectionPosition(int globalPosition) { | 100 private int toSectionPosition(int globalPosition) { |
| 120 int sectionPosition = globalPosition; | 101 int sectionPosition = globalPosition; |
| 121 for (List<?> section : mSections) { | 102 for (List<?> section : mSections) { |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 if (folders == null) folders = new ArrayList<BookmarkId>(); | 140 if (folders == null) folders = new ArrayList<BookmarkId>(); |
| 160 | 141 |
| 161 mFolderSection.clear(); | 142 mFolderSection.clear(); |
| 162 mFolderSection.addAll(folders); | 143 mFolderSection.addAll(folders); |
| 163 mBookmarkSection.clear(); | 144 mBookmarkSection.clear(); |
| 164 mBookmarkSection.addAll(bookmarks); | 145 mBookmarkSection.addAll(bookmarks); |
| 165 | 146 |
| 166 updateHeaderAndNotify(); | 147 updateHeaderAndNotify(); |
| 167 } | 148 } |
| 168 | 149 |
| 169 private void updateDividerSections() { | |
| 170 if (!mShouldShowDividers) return; | |
| 171 | |
| 172 mFolderDividerSection.clear(); | |
| 173 mBookmarkDividerSection.clear(); | |
| 174 | |
| 175 boolean isHeaderPresent = !mPromoHeaderSection.isEmpty(); | |
| 176 | |
| 177 if (isHeaderPresent && !mFolderSection.isEmpty()) { | |
| 178 mFolderDividerSection.add(null); | |
| 179 } | |
| 180 if ((isHeaderPresent || !mFolderSection.isEmpty()) && !mBookmarkSection.
isEmpty()) { | |
| 181 mBookmarkDividerSection.add(null); | |
| 182 } | |
| 183 } | |
| 184 | |
| 185 private void removeItem(int position) { | 150 private void removeItem(int position) { |
| 186 List<?> section = getSection(position); | 151 List<?> section = getSection(position); |
| 187 assert section == mFolderSection || section == mBookmarkSection; | 152 assert section == mFolderSection || section == mBookmarkSection; |
| 188 section.remove(toSectionPosition(position)); | 153 section.remove(toSectionPosition(position)); |
| 189 notifyItemRemoved(position); | 154 notifyItemRemoved(position); |
| 190 | 155 |
| 191 if (section == mBookmarkSection && !mBookmarkSection.isEmpty()) { | 156 if (section == mBookmarkSection && !mBookmarkSection.isEmpty()) { |
| 192 for (BookmarkRow row : mBookmarkRows) { | 157 for (BookmarkRow row : mBookmarkRows) { |
| 193 BookmarkId id = row.getItem(); | 158 BookmarkId id = row.getItem(); |
| 194 setBackgroundResourceForBookmarkRow(row, id); | 159 setBackgroundResourceForBookmarkRow(row, id); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 211 } | 176 } |
| 212 return count; | 177 return count; |
| 213 } | 178 } |
| 214 | 179 |
| 215 @Override | 180 @Override |
| 216 public int getItemViewType(int position) { | 181 public int getItemViewType(int position) { |
| 217 List<?> section = getSection(position); | 182 List<?> section = getSection(position); |
| 218 | 183 |
| 219 if (section == mPromoHeaderSection) { | 184 if (section == mPromoHeaderSection) { |
| 220 return PROMO_HEADER_VIEW; | 185 return PROMO_HEADER_VIEW; |
| 221 } else if (section == mFolderDividerSection | |
| 222 || section == mBookmarkDividerSection) { | |
| 223 return DIVIDER_VIEW; | |
| 224 } else if (section == mFolderSection) { | 186 } else if (section == mFolderSection) { |
| 225 return FOLDER_VIEW; | 187 return FOLDER_VIEW; |
| 226 } else if (section == mBookmarkSection) { | 188 } else if (section == mBookmarkSection) { |
| 227 return BOOKMARK_VIEW; | 189 return BOOKMARK_VIEW; |
| 228 } | 190 } |
| 229 | 191 |
| 230 assert false : "Invalid position requested"; | 192 assert false : "Invalid position requested"; |
| 231 return -1; | 193 return -1; |
| 232 } | 194 } |
| 233 | 195 |
| 234 @Override | 196 @Override |
| 235 public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | 197 public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { |
| 236 assert mDelegate != null; | 198 assert mDelegate != null; |
| 237 | 199 |
| 238 switch (viewType) { | 200 switch (viewType) { |
| 239 case PROMO_HEADER_VIEW: | 201 case PROMO_HEADER_VIEW: |
| 240 return mPromoHeaderManager.createHolder(parent); | 202 return mPromoHeaderManager.createHolder(parent); |
| 241 case DIVIDER_VIEW: | |
| 242 return new ViewHolder(LayoutInflater.from(parent.getContext()).i
nflate( | |
| 243 R.layout.bookmark_divider, parent, false)) {}; | |
| 244 case FOLDER_VIEW: | 203 case FOLDER_VIEW: |
| 245 BookmarkFolderRow folder = (BookmarkFolderRow) LayoutInflater.fr
om( | 204 BookmarkFolderRow folder = (BookmarkFolderRow) LayoutInflater.fr
om( |
| 246 parent.getContext()).inflate(R.layout.bookmark_folder_ro
w, parent, false); | 205 parent.getContext()).inflate(R.layout.bookmark_folder_ro
w, parent, false); |
| 247 folder.onBookmarkDelegateInitialized(mDelegate); | 206 folder.onBookmarkDelegateInitialized(mDelegate); |
| 248 mFolderRows.add(folder); | 207 mFolderRows.add(folder); |
| 249 return new ItemViewHolder(folder); | 208 return new ItemViewHolder(folder); |
| 250 case BOOKMARK_VIEW: | 209 case BOOKMARK_VIEW: |
| 251 BookmarkItemRow item = (BookmarkItemRow) LayoutInflater.from( | 210 BookmarkItemRow item = (BookmarkItemRow) LayoutInflater.from( |
| 252 parent.getContext()).inflate(R.layout.bookmark_item_row,
parent, false); | 211 parent.getContext()).inflate(R.layout.bookmark_item_row,
parent, false); |
| 253 item.onBookmarkDelegateInitialized(mDelegate); | 212 item.onBookmarkDelegateInitialized(mDelegate); |
| 254 mBookmarkRows.add(item); | 213 mBookmarkRows.add(item); |
| 255 return new ItemViewHolder(item); | 214 return new ItemViewHolder(item); |
| 256 default: | 215 default: |
| 257 assert false; | 216 assert false; |
| 258 return null; | 217 return null; |
| 259 } | 218 } |
| 260 } | 219 } |
| 261 | 220 |
| 262 @SuppressFBWarnings("BC_UNCONFIRMED_CAST") | 221 @SuppressFBWarnings("BC_UNCONFIRMED_CAST") |
| 263 @Override | 222 @Override |
| 264 public void onBindViewHolder(ViewHolder holder, int position) { | 223 public void onBindViewHolder(ViewHolder holder, int position) { |
| 265 BookmarkId id = getItem(position); | 224 BookmarkId id = getItem(position); |
| 266 | 225 |
| 267 switch (getItemViewType(position)) { | 226 switch (getItemViewType(position)) { |
| 268 case PROMO_HEADER_VIEW: | 227 case PROMO_HEADER_VIEW: |
| 269 case DIVIDER_VIEW: | |
| 270 break; | 228 break; |
| 271 case FOLDER_VIEW: | 229 case FOLDER_VIEW: |
| 272 ((BookmarkRow) holder.itemView).setBookmarkId(id); | 230 ((BookmarkRow) holder.itemView).setBookmarkId(id); |
| 273 setBackgroundResourceForFolderRow(((BookmarkRow) holder.itemView
), id); | 231 setBackgroundResourceForFolderRow(((BookmarkRow) holder.itemView
), id); |
| 274 break; | 232 break; |
| 275 case BOOKMARK_VIEW: | 233 case BOOKMARK_VIEW: |
| 276 ((BookmarkRow) holder.itemView).setBookmarkId(id); | 234 ((BookmarkRow) holder.itemView).setBookmarkId(id); |
| 277 setBackgroundResourceForBookmarkRow((BookmarkRow) holder.itemVie
w, id); | 235 setBackgroundResourceForBookmarkRow((BookmarkRow) holder.itemVie
w, id); |
| 278 break; | 236 break; |
| 279 default: | 237 default: |
| (...skipping 14 matching lines...) Expand all Loading... |
| 294 } | 252 } |
| 295 | 253 |
| 296 // BookmarkUIObserver implementations. | 254 // BookmarkUIObserver implementations. |
| 297 | 255 |
| 298 @Override | 256 @Override |
| 299 public void onBookmarkDelegateInitialized(BookmarkDelegate delegate) { | 257 public void onBookmarkDelegateInitialized(BookmarkDelegate delegate) { |
| 300 mDelegate = delegate; | 258 mDelegate = delegate; |
| 301 mDelegate.addUIObserver(this); | 259 mDelegate.addUIObserver(this); |
| 302 mDelegate.getModel().addObserver(mBookmarkModelObserver); | 260 mDelegate.getModel().addObserver(mBookmarkModelObserver); |
| 303 mPromoHeaderManager = new BookmarkPromoHeader(mContext, this); | 261 mPromoHeaderManager = new BookmarkPromoHeader(mContext, this); |
| 262 populateTopLevelFoldersList(); |
| 304 } | 263 } |
| 305 | 264 |
| 306 @Override | 265 @Override |
| 307 public void onDestroy() { | 266 public void onDestroy() { |
| 308 mDelegate.removeUIObserver(this); | 267 mDelegate.removeUIObserver(this); |
| 309 mDelegate.getModel().removeObserver(mBookmarkModelObserver); | 268 mDelegate.getModel().removeObserver(mBookmarkModelObserver); |
| 310 mDelegate = null; | 269 mDelegate = null; |
| 311 | 270 |
| 312 mPromoHeaderManager.destroy(); | 271 mPromoHeaderManager.destroy(); |
| 313 } | 272 } |
| 314 | 273 |
| 315 @Override | 274 @Override |
| 316 public void onFolderStateSet(BookmarkId folder) { | 275 public void onFolderStateSet(BookmarkId folder) { |
| 317 assert mDelegate != null; | 276 assert mDelegate != null; |
| 318 setBookmarks(mDelegate.getModel().getChildIDs(folder, true, false), | |
| 319 mDelegate.getModel().getChildIDs(folder, false, true)); | |
| 320 | 277 |
| 321 mSearchText = EMPTY_QUERY; | 278 mSearchText = EMPTY_QUERY; |
| 279 |
| 280 if (folder.equals(mDelegate.getModel().getRootFolderId())) { |
| 281 setBookmarks(mTopLevelFolders, new ArrayList<BookmarkId>()); |
| 282 } else { |
| 283 setBookmarks(mDelegate.getModel().getChildIDs(folder, true, false), |
| 284 mDelegate.getModel().getChildIDs(folder, false, true)); |
| 285 } |
| 322 } | 286 } |
| 323 | 287 |
| 324 @Override | 288 @Override |
| 325 public void onSearchStateSet() { | 289 public void onSearchStateSet() { |
| 326 updateHeaderAndNotify(); | 290 updateHeaderAndNotify(); |
| 327 } | 291 } |
| 328 | 292 |
| 329 @Override | 293 @Override |
| 330 public void onSelectionStateChange(List<BookmarkId> selectedBookmarks) {} | 294 public void onSelectionStateChange(List<BookmarkId> selectedBookmarks) {} |
| 331 | 295 |
| 332 /** | 296 /** |
| 333 * Synchronously searches for the given query. | 297 * Synchronously searches for the given query. |
| 334 * @param query The query text to search for. | 298 * @param query The query text to search for. |
| 335 */ | 299 */ |
| 336 void search(String query) { | 300 void search(String query) { |
| 337 mSearchText = query.toString().trim(); | 301 mSearchText = query.toString().trim(); |
| 338 List<BookmarkId> results = | 302 List<BookmarkId> results = |
| 339 mDelegate.getModel().searchBookmarks(mSearchText, MAXIMUM_NUMBER
_OF_SEARCH_RESULTS); | 303 mDelegate.getModel().searchBookmarks(mSearchText, MAXIMUM_NUMBER
_OF_SEARCH_RESULTS); |
| 340 setBookmarks(null, results); | 304 setBookmarks(null, results); |
| 341 } | 305 } |
| 342 | 306 |
| 343 private static class ItemViewHolder extends RecyclerView.ViewHolder { | 307 private static class ItemViewHolder extends RecyclerView.ViewHolder { |
| 344 private ItemViewHolder(View view) { | 308 private ItemViewHolder(View view) { |
| 345 super(view); | 309 super(view); |
| 346 } | 310 } |
| 347 } | 311 } |
| 348 | 312 |
| 349 private void updateHeaderAndNotify() { | 313 private void updateHeaderAndNotify() { |
| 350 updateHeader(); | 314 updateHeader(); |
| 351 updateDividerSections(); | |
| 352 notifyDataSetChanged(); | 315 notifyDataSetChanged(); |
| 353 } | 316 } |
| 354 | 317 |
| 355 private void updateHeader() { | 318 private void updateHeader() { |
| 356 if (mDelegate == null) return; | 319 if (mDelegate == null) return; |
| 357 | 320 |
| 358 int currentUIState = mDelegate.getCurrentState(); | 321 int currentUIState = mDelegate.getCurrentState(); |
| 359 if (currentUIState == BookmarkUIState.STATE_LOADING) return; | 322 if (currentUIState == BookmarkUIState.STATE_LOADING) return; |
| 360 | 323 |
| 361 mPromoHeaderSection.clear(); | 324 mPromoHeaderSection.clear(); |
| 362 | 325 |
| 363 if (currentUIState == BookmarkUIState.STATE_SEARCHING) return; | 326 if (currentUIState == BookmarkUIState.STATE_SEARCHING) return; |
| 364 | 327 |
| 365 assert currentUIState == BookmarkUIState.STATE_FOLDER : "Unexpected UI s
tate"; | 328 assert currentUIState == BookmarkUIState.STATE_FOLDER : "Unexpected UI s
tate"; |
| 366 if (mPromoHeaderManager.shouldShow()) { | 329 if (mPromoHeaderManager.shouldShow()) { |
| 367 mPromoHeaderSection.add(null); | 330 mPromoHeaderSection.add(null); |
| 368 } | 331 } |
| 369 } | 332 } |
| 370 | 333 |
| 334 private void populateTopLevelFoldersList() { |
| 335 BookmarkId desktopNodeId = mDelegate.getModel().getDesktopFolderId(); |
| 336 BookmarkId mobileNodeId = mDelegate.getModel().getMobileFolderId(); |
| 337 BookmarkId othersNodeId = mDelegate.getModel().getOtherFolderId(); |
| 338 |
| 339 if (mDelegate.getModel().isFolderVisible(mobileNodeId)) { |
| 340 mTopLevelFolders.add(mobileNodeId); |
| 341 } |
| 342 if (mDelegate.getModel().isFolderVisible(desktopNodeId)) { |
| 343 mTopLevelFolders.add(desktopNodeId); |
| 344 } |
| 345 if (mDelegate.getModel().isFolderVisible(othersNodeId)) { |
| 346 mTopLevelFolders.add(othersNodeId); |
| 347 } |
| 348 } |
| 349 |
| 371 @VisibleForTesting | 350 @VisibleForTesting |
| 372 public BookmarkDelegate getDelegateForTesting() { | 351 public BookmarkDelegate getDelegateForTesting() { |
| 373 return mDelegate; | 352 return mDelegate; |
| 374 } | 353 } |
| 375 | 354 |
| 376 private void setBackgroundResourceForBookmarkRow(BookmarkRow row, BookmarkId
id) { | 355 private void setBackgroundResourceForBookmarkRow(BookmarkRow row, BookmarkId
id) { |
| 377 row.setBackgroundResourceForGroupPosition(id.equals(mBookmarkSection.get
(0)), | 356 row.setBackgroundResourceForGroupPosition(id.equals(mBookmarkSection.get
(0)), |
| 378 id.equals(mBookmarkSection.get(mBookmarkSection.size() - 1))); | 357 id.equals(mBookmarkSection.get(mBookmarkSection.size() - 1))); |
| 379 } | 358 } |
| 380 | 359 |
| 381 private void setBackgroundResourceForFolderRow(BookmarkRow row, BookmarkId i
d) { | 360 private void setBackgroundResourceForFolderRow(BookmarkRow row, BookmarkId i
d) { |
| 382 row.setBackgroundResourceForGroupPosition(id.equals(mFolderSection.get(0
)), | 361 row.setBackgroundResourceForGroupPosition(id.equals(mFolderSection.get(0
)), |
| 383 id.equals(mFolderSection.get(mFolderSection.size() - 1))); | 362 id.equals(mFolderSection.get(mFolderSection.size() - 1))); |
| 384 } | 363 } |
| 385 } | 364 } |
| OLD | NEW |