Chromium Code Reviews| 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.enhancedbookmarks; | 5 package org.chromium.chrome.browser.bookmarks; |
| 6 | 6 |
| 7 import android.app.Activity; | 7 import android.app.Activity; |
| 8 import android.content.Context; | 8 import android.content.Context; |
| 9 import android.support.v7.app.ActionBarDrawerToggle; | 9 import android.support.v7.app.ActionBarDrawerToggle; |
| 10 import android.support.v7.widget.Toolbar; | 10 import android.support.v7.widget.Toolbar; |
| 11 import android.support.v7.widget.Toolbar.OnMenuItemClickListener; | 11 import android.support.v7.widget.Toolbar.OnMenuItemClickListener; |
| 12 import android.text.TextUtils; | 12 import android.text.TextUtils; |
| 13 import android.util.AttributeSet; | 13 import android.util.AttributeSet; |
| 14 import android.view.MenuItem; | 14 import android.view.MenuItem; |
| 15 import android.view.View; | 15 import android.view.View; |
| 16 import android.view.View.OnClickListener; | 16 import android.view.View.OnClickListener; |
| 17 | 17 |
| 18 import org.chromium.base.ApiCompatibilityUtils; | 18 import org.chromium.base.ApiCompatibilityUtils; |
| 19 import org.chromium.chrome.R; | 19 import org.chromium.chrome.R; |
| 20 import org.chromium.chrome.browser.bookmark.BookmarksBridge.BookmarkItem; | 20 import org.chromium.chrome.browser.bookmark.BookmarksBridge.BookmarkItem; |
| 21 import org.chromium.chrome.browser.bookmark.BookmarksBridge.BookmarkModelObserve r; | 21 import org.chromium.chrome.browser.bookmark.BookmarksBridge.BookmarkModelObserve r; |
| 22 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; | 22 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; |
| 23 import org.chromium.chrome.browser.widget.NumberRollView; | 23 import org.chromium.chrome.browser.widget.NumberRollView; |
| 24 import org.chromium.components.bookmarks.BookmarkId; | 24 import org.chromium.components.bookmarks.BookmarkId; |
| 25 import org.chromium.components.bookmarks.BookmarkType; | 25 import org.chromium.components.bookmarks.BookmarkType; |
| 26 | 26 |
| 27 import java.util.List; | 27 import java.util.List; |
| 28 | 28 |
| 29 /** | 29 /** |
| 30 * Main action bar of Enhanced Bookmark UI. It is responsible for displaying tit le and buttons | 30 * Main action bar of Enhanced Bookmark UI. It is responsible for displaying tit le and buttons |
| 31 * associated with the current context. | 31 * associated with the current context. |
| 32 */ | 32 */ |
| 33 public class EnhancedBookmarkActionBar extends Toolbar implements EnhancedBookma rkUIObserver, | 33 public class BookmarkActionBar extends Toolbar implements BookmarkUIObserver, |
| 34 OnMenuItemClickListener, OnClickListener { | 34 OnMenuItemClickListener, OnClickListener { |
| 35 private static final int NAVIGATION_BUTTON_NONE = 0; | 35 private static final int NAVIGATION_BUTTON_NONE = 0; |
| 36 private static final int NAVIGATION_BUTTON_MENU = 1; | 36 private static final int NAVIGATION_BUTTON_MENU = 1; |
| 37 private static final int NAVIGATION_BUTTON_BACK = 2; | 37 private static final int NAVIGATION_BUTTON_BACK = 2; |
| 38 private static final int NAVIGATION_BUTTON_SELECTION_BACK = 3; | 38 private static final int NAVIGATION_BUTTON_SELECTION_BACK = 3; |
| 39 | 39 |
| 40 private int mNavigationButton; | 40 private int mNavigationButton; |
| 41 private BookmarkItem mCurrentFolder; | 41 private BookmarkItem mCurrentFolder; |
| 42 private EnhancedBookmarkDelegate mDelegate; | 42 private BookmarkDelegate mDelegate; |
| 43 private ActionBarDrawerToggle mActionBarDrawerToggle; | 43 private ActionBarDrawerToggle mActionBarDrawerToggle; |
| 44 private boolean mIsSelectionEnabled; | 44 private boolean mIsSelectionEnabled; |
| 45 | 45 |
| 46 private BookmarkModelObserver mBookmarkModelObserver = new BookmarkModelObse rver() { | 46 private BookmarkModelObserver mBookmarkModelObserver = new BookmarkModelObse rver() { |
| 47 @Override | 47 @Override |
| 48 public void bookmarkModelChanged() { | 48 public void bookmarkModelChanged() { |
| 49 onSelectionStateChange(mDelegate.getSelectedBookmarks()); | 49 onSelectionStateChange(mDelegate.getSelectedBookmarks()); |
| 50 } | 50 } |
| 51 }; | 51 }; |
| 52 | 52 |
| 53 public EnhancedBookmarkActionBar(Context context, AttributeSet attrs) { | 53 public BookmarkActionBar(Context context, AttributeSet attrs) { |
| 54 super(context, attrs); | 54 super(context, attrs); |
| 55 setNavigationOnClickListener(this); | 55 setNavigationOnClickListener(this); |
| 56 inflateMenu(R.menu.eb_action_bar_menu); | 56 inflateMenu(R.menu.eb_action_bar_menu); |
| 57 setOnMenuItemClickListener(this); | 57 setOnMenuItemClickListener(this); |
| 58 | 58 |
| 59 getMenu() | 59 getMenu() |
| 60 .findItem(R.id.search_menu_id) | 60 .findItem(R.id.search_menu_id) |
| 61 .setTitle(OfflinePageUtils.getStringId( | 61 .setTitle(OfflinePageUtils.getStringId( |
| 62 R.string.enhanced_bookmark_action_bar_search)); | 62 R.string.enhanced_bookmark_action_bar_search)); |
| 63 getMenu() | 63 getMenu() |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 87 mDelegate.clearSelection(); | 87 mDelegate.clearSelection(); |
| 88 break; | 88 break; |
| 89 default: | 89 default: |
| 90 assert false : "Incorrect navigation button state"; | 90 assert false : "Incorrect navigation button state"; |
| 91 } | 91 } |
| 92 } | 92 } |
| 93 | 93 |
| 94 @Override | 94 @Override |
| 95 public boolean onMenuItemClick(MenuItem menuItem) { | 95 public boolean onMenuItemClick(MenuItem menuItem) { |
| 96 if (menuItem.getItemId() == R.id.edit_menu_id) { | 96 if (menuItem.getItemId() == R.id.edit_menu_id) { |
| 97 EnhancedBookmarkAddEditFolderActivity.startEditFolderActivity(getCon text(), | 97 BookmarkAddEditFolderActivity.startEditFolderActivity(getContext(), |
| 98 mCurrentFolder.getId()); | 98 mCurrentFolder.getId()); |
| 99 } else if (menuItem.getItemId() == R.id.close_menu_id) { | 99 } else if (menuItem.getItemId() == R.id.close_menu_id) { |
| 100 EnhancedBookmarkUtils.finishActivityOnPhone(getContext()); | 100 BookmarkUtils.finishActivityOnPhone(getContext()); |
| 101 return true; | 101 return true; |
| 102 } else if (menuItem.getItemId() == R.id.search_menu_id) { | 102 } else if (menuItem.getItemId() == R.id.search_menu_id) { |
| 103 mDelegate.openSearchUI(); | 103 mDelegate.openSearchUI(); |
| 104 return true; | 104 return true; |
| 105 } else if (menuItem.getItemId() == R.id.selection_mode_edit_menu_id) { | 105 } else if (menuItem.getItemId() == R.id.selection_mode_edit_menu_id) { |
| 106 List<BookmarkId> list = mDelegate.getSelectedBookmarks(); | 106 List<BookmarkId> list = mDelegate.getSelectedBookmarks(); |
| 107 assert list.size() == 1; | 107 assert list.size() == 1; |
| 108 BookmarkItem item = mDelegate.getModel().getBookmarkById(list.get(0) ); | 108 BookmarkItem item = mDelegate.getModel().getBookmarkById(list.get(0) ); |
| 109 if (item.isFolder()) { | 109 if (item.isFolder()) { |
| 110 EnhancedBookmarkAddEditFolderActivity.startEditFolderActivity(ge tContext(), | 110 BookmarkAddEditFolderActivity.startEditFolderActivity(getContext (), |
| 111 item.getId()); | 111 item.getId()); |
|
Ian Wen
2016/02/10 22:59:04
Push #111 to #110?
newt (away)
2016/02/11 03:10:07
Done.
| |
| 112 } else { | 112 } else { |
| 113 EnhancedBookmarkUtils.startEditActivity(getContext(), item.getId (), null); | 113 BookmarkUtils.startEditActivity(getContext(), item.getId(), null ); |
| 114 } | 114 } |
| 115 return true; | 115 return true; |
| 116 } else if (menuItem.getItemId() == R.id.selection_mode_move_menu_id) { | 116 } else if (menuItem.getItemId() == R.id.selection_mode_move_menu_id) { |
| 117 List<BookmarkId> list = mDelegate.getSelectedBookmarks(); | 117 List<BookmarkId> list = mDelegate.getSelectedBookmarks(); |
| 118 if (list.size() >= 1) { | 118 if (list.size() >= 1) { |
| 119 EnhancedBookmarkFolderSelectActivity.startFolderSelectActivity(g etContext(), | 119 BookmarkFolderSelectActivity.startFolderSelectActivity(getContex t(), |
| 120 list.toArray(new BookmarkId[list.size()])); | 120 list.toArray(new BookmarkId[list.size()])); |
| 121 } | 121 } |
| 122 return true; | 122 return true; |
| 123 } else if (menuItem.getItemId() == R.id.selection_mode_delete_menu_id) { | 123 } else if (menuItem.getItemId() == R.id.selection_mode_delete_menu_id) { |
| 124 mDelegate.getModel().deleteBookmarks( | 124 mDelegate.getModel().deleteBookmarks( |
| 125 mDelegate.getSelectedBookmarks().toArray(new BookmarkId[0])) ; | 125 mDelegate.getSelectedBookmarks().toArray(new BookmarkId[0])) ; |
| 126 return true; | 126 return true; |
| 127 } | 127 } |
| 128 | 128 |
| 129 assert false : "Unhandled menu click."; | 129 assert false : "Unhandled menu click."; |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 194 mActionBarDrawerToggle.syncState(); | 194 mActionBarDrawerToggle.syncState(); |
| 195 } | 195 } |
| 196 | 196 |
| 197 void showLoadingUi() { | 197 void showLoadingUi() { |
| 198 setTitle(null); | 198 setTitle(null); |
| 199 setNavigationButton(NAVIGATION_BUTTON_NONE); | 199 setNavigationButton(NAVIGATION_BUTTON_NONE); |
| 200 getMenu().findItem(R.id.search_menu_id).setVisible(false); | 200 getMenu().findItem(R.id.search_menu_id).setVisible(false); |
| 201 getMenu().findItem(R.id.edit_menu_id).setVisible(false); | 201 getMenu().findItem(R.id.edit_menu_id).setVisible(false); |
| 202 } | 202 } |
| 203 | 203 |
| 204 // EnhancedBookmarkUIObserver implementations. | 204 // BookmarkUIObserver implementations. |
| 205 | 205 |
| 206 @Override | 206 @Override |
| 207 public void onEnhancedBookmarkDelegateInitialized(EnhancedBookmarkDelegate d elegate) { | 207 public void onBookmarkDelegateInitialized(BookmarkDelegate delegate) { |
| 208 mDelegate = delegate; | 208 mDelegate = delegate; |
| 209 mDelegate.addUIObserver(this); | 209 mDelegate.addUIObserver(this); |
| 210 if (!delegate.isDialogUi()) getMenu().removeItem(R.id.close_menu_id); | 210 if (!delegate.isDialogUi()) getMenu().removeItem(R.id.close_menu_id); |
| 211 delegate.getModel().addObserver(mBookmarkModelObserver); | 211 delegate.getModel().addObserver(mBookmarkModelObserver); |
| 212 } | 212 } |
| 213 | 213 |
| 214 @Override | 214 @Override |
| 215 public void onDestroy() { | 215 public void onDestroy() { |
| 216 mDelegate.removeUIObserver(this); | 216 mDelegate.removeUIObserver(this); |
| 217 mDelegate.getModel().removeObserver(mBookmarkModelObserver); | 217 mDelegate.getModel().removeObserver(mBookmarkModelObserver); |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 241 setTitle(mCurrentFolder.getTitle()); | 241 setTitle(mCurrentFolder.getTitle()); |
| 242 } | 242 } |
| 243 setNavigationButton(NAVIGATION_BUTTON_MENU); | 243 setNavigationButton(NAVIGATION_BUTTON_MENU); |
| 244 } else { | 244 } else { |
| 245 setTitle(mCurrentFolder.getTitle()); | 245 setTitle(mCurrentFolder.getTitle()); |
| 246 setNavigationButton(NAVIGATION_BUTTON_BACK); | 246 setNavigationButton(NAVIGATION_BUTTON_BACK); |
| 247 } | 247 } |
| 248 } | 248 } |
| 249 | 249 |
| 250 @Override | 250 @Override |
| 251 public void onFilterStateSet(EnhancedBookmarkFilter filter) { | 251 public void onFilterStateSet(BookmarkFilter filter) { |
| 252 assert filter == EnhancedBookmarkFilter.OFFLINE_PAGES; | 252 assert filter == BookmarkFilter.OFFLINE_PAGES; |
| 253 setTitle(R.string.enhanced_bookmark_title_bar_filter_offline_pages); | 253 setTitle(R.string.enhanced_bookmark_title_bar_filter_offline_pages); |
| 254 setNavigationButton(NAVIGATION_BUTTON_MENU); | 254 setNavigationButton(NAVIGATION_BUTTON_MENU); |
| 255 getMenu().findItem(R.id.edit_menu_id).setVisible(false); | 255 getMenu().findItem(R.id.edit_menu_id).setVisible(false); |
| 256 } | 256 } |
| 257 | 257 |
| 258 @Override | 258 @Override |
| 259 public void onSelectionStateChange(List<BookmarkId> selectedBookmarks) { | 259 public void onSelectionStateChange(List<BookmarkId> selectedBookmarks) { |
| 260 boolean wasSelectionEnabled = mIsSelectionEnabled; | 260 boolean wasSelectionEnabled = mIsSelectionEnabled; |
| 261 mIsSelectionEnabled = mDelegate.isSelectionEnabled(); | 261 mIsSelectionEnabled = mDelegate.isSelectionEnabled(); |
| 262 NumberRollView numberRollView = (NumberRollView) findViewById(R.id.selec tion_mode_number); | 262 NumberRollView numberRollView = (NumberRollView) findViewById(R.id.selec tion_mode_number); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 294 numberRollView.setNumber(0, false); | 294 numberRollView.setNumber(0, false); |
| 295 | 295 |
| 296 mDelegate.notifyStateChange(this); | 296 mDelegate.notifyStateChange(this); |
| 297 } | 297 } |
| 298 } | 298 } |
| 299 | 299 |
| 300 private int getTitleForAllItems() { | 300 private int getTitleForAllItems() { |
| 301 return OfflinePageUtils.getStringId(R.string.enhanced_bookmark_title_bar _all_items); | 301 return OfflinePageUtils.getStringId(R.string.enhanced_bookmark_title_bar _all_items); |
| 302 } | 302 } |
| 303 } | 303 } |
| OLD | NEW |