| 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; | 5 package org.chromium.chrome.browser; |
| 6 | 6 |
| 7 import android.annotation.SuppressLint; | 7 import android.annotation.SuppressLint; |
| 8 import android.annotation.TargetApi; | 8 import android.annotation.TargetApi; |
| 9 import android.app.Activity; | 9 import android.app.Activity; |
| 10 import android.app.SearchManager; | 10 import android.app.SearchManager; |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 import org.chromium.base.metrics.RecordHistogram; | 54 import org.chromium.base.metrics.RecordHistogram; |
| 55 import org.chromium.base.metrics.RecordUserAction; | 55 import org.chromium.base.metrics.RecordUserAction; |
| 56 import org.chromium.chrome.R; | 56 import org.chromium.chrome.R; |
| 57 import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; | 57 import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; |
| 58 import org.chromium.chrome.browser.IntentHandler.TabOpenType; | 58 import org.chromium.chrome.browser.IntentHandler.TabOpenType; |
| 59 import org.chromium.chrome.browser.appmenu.AppMenu; | 59 import org.chromium.chrome.browser.appmenu.AppMenu; |
| 60 import org.chromium.chrome.browser.appmenu.AppMenuHandler; | 60 import org.chromium.chrome.browser.appmenu.AppMenuHandler; |
| 61 import org.chromium.chrome.browser.appmenu.AppMenuObserver; | 61 import org.chromium.chrome.browser.appmenu.AppMenuObserver; |
| 62 import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate; | 62 import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate; |
| 63 import org.chromium.chrome.browser.bookmark.BookmarksBridge.BookmarkModelObserve
r; | 63 import org.chromium.chrome.browser.bookmark.BookmarksBridge.BookmarkModelObserve
r; |
| 64 import org.chromium.chrome.browser.bookmark.ManageBookmarkActivity; | |
| 65 import org.chromium.chrome.browser.compositor.CompositorViewHolder; | 64 import org.chromium.chrome.browser.compositor.CompositorViewHolder; |
| 66 import org.chromium.chrome.browser.compositor.layouts.Layout; | 65 import org.chromium.chrome.browser.compositor.layouts.Layout; |
| 67 import org.chromium.chrome.browser.compositor.layouts.LayoutManager; | 66 import org.chromium.chrome.browser.compositor.layouts.LayoutManager; |
| 68 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerDocument; | 67 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerDocument; |
| 69 import org.chromium.chrome.browser.compositor.layouts.SceneChangeObserver; | 68 import org.chromium.chrome.browser.compositor.layouts.SceneChangeObserver; |
| 70 import org.chromium.chrome.browser.compositor.layouts.content.ContentOffsetProvi
der; | 69 import org.chromium.chrome.browser.compositor.layouts.content.ContentOffsetProvi
der; |
| 71 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; | 70 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; |
| 72 import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial; | 71 import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial; |
| 73 import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; | 72 import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; |
| 74 import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager.Cont
extualSearchTabPromotionDelegate; | 73 import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager.Cont
extualSearchTabPromotionDelegate; |
| (...skipping 944 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1019 } | 1018 } |
| 1020 | 1019 |
| 1021 assert mToolbarManager.getBookmarksBridge().isEditBookmarksEnabled(); | 1020 assert mToolbarManager.getBookmarksBridge().isEditBookmarksEnabled(); |
| 1022 | 1021 |
| 1023 // Note the use of getUserBookmarkId() over getBookmarkId() here: Manage
d bookmarks can't be | 1022 // Note the use of getUserBookmarkId() over getBookmarkId() here: Manage
d bookmarks can't be |
| 1024 // edited. If the current URL is only bookmarked by managed bookmarks, t
his will return | 1023 // edited. If the current URL is only bookmarked by managed bookmarks, t
his will return |
| 1025 // INVALID_BOOKMARK_ID, so the code below will fall back on adding a new
bookmark instead. | 1024 // INVALID_BOOKMARK_ID, so the code below will fall back on adding a new
bookmark instead. |
| 1026 // TODO(bauerb): This does not take partner bookmarks into account. | 1025 // TODO(bauerb): This does not take partner bookmarks into account. |
| 1027 final long bookmarkId = tabToBookmark.getUserBookmarkId(); | 1026 final long bookmarkId = tabToBookmark.getUserBookmarkId(); |
| 1028 | 1027 |
| 1029 if (EnhancedBookmarkUtils.isEnhancedBookmarkEnabled()) { | 1028 final EnhancedBookmarksModel bookmarkModel = new EnhancedBookmarksModel(
); |
| 1030 final EnhancedBookmarksModel bookmarkModel = new EnhancedBookmarksMo
del(); | 1029 bookmarkModel.runAfterBookmarkModelLoaded(new Runnable() { |
| 1031 if (bookmarkModel.isBookmarkModelLoaded()) { | 1030 @Override |
| 1031 public void run() { |
| 1032 EnhancedBookmarkUtils.addOrEditBookmark(bookmarkId, bookmarkMode
l, | 1032 EnhancedBookmarkUtils.addOrEditBookmark(bookmarkId, bookmarkMode
l, |
| 1033 tabToBookmark, getSnackbarManager(), ChromeActivity.this
); | 1033 tabToBookmark, getSnackbarManager(), ChromeActivity.this
); |
| 1034 } else if (mBookmarkObserver == null) { | |
| 1035 mBookmarkObserver = new BookmarkModelObserver() { | |
| 1036 @Override | |
| 1037 public void bookmarkModelChanged() {} | |
| 1038 | |
| 1039 @Override | |
| 1040 public void bookmarkModelLoaded() { | |
| 1041 EnhancedBookmarkUtils.addOrEditBookmark(bookmarkId, book
markModel, | |
| 1042 tabToBookmark, getSnackbarManager(), ChromeActiv
ity.this); | |
| 1043 bookmarkModel.removeObserver(this); | |
| 1044 } | |
| 1045 }; | |
| 1046 bookmarkModel.addObserver(mBookmarkObserver); | |
| 1047 } | 1034 } |
| 1048 } else { | 1035 }); |
| 1049 Intent intent = new Intent(this, ManageBookmarkActivity.class); | |
| 1050 if (bookmarkId == ChromeBrowserProviderClient.INVALID_BOOKMARK_ID) { | |
| 1051 intent.putExtra(ManageBookmarkActivity.BOOKMARK_INTENT_IS_FOLDER
, false); | |
| 1052 intent.putExtra(ManageBookmarkActivity.BOOKMARK_INTENT_TITLE, | |
| 1053 tabToBookmark.getTitle()); | |
| 1054 intent.putExtra(ManageBookmarkActivity.BOOKMARK_INTENT_URL, tabT
oBookmark.getUrl()); | |
| 1055 } else { | |
| 1056 intent.putExtra(ManageBookmarkActivity.BOOKMARK_INTENT_IS_FOLDER
, false); | |
| 1057 intent.putExtra(ManageBookmarkActivity.BOOKMARK_INTENT_ID, bookm
arkId); | |
| 1058 } | |
| 1059 startActivity(intent); | |
| 1060 } | |
| 1061 } | 1036 } |
| 1062 | 1037 |
| 1063 /** | 1038 /** |
| 1064 * Saves an offline copy for the specified tab that is bookmarked. | 1039 * Saves an offline copy for the specified tab that is bookmarked. |
| 1065 * @param tab The tab that needs to save an offline copy. | 1040 * @param tab The tab that needs to save an offline copy. |
| 1066 */ | 1041 */ |
| 1067 public void saveBookmarkOffline(Tab tab) { | 1042 public void saveBookmarkOffline(Tab tab) { |
| 1068 if (tab == null || tab.isFrozen()) { | 1043 if (tab == null || tab.isFrozen()) { |
| 1069 return; | 1044 return; |
| 1070 } | 1045 } |
| (...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1631 public static int getThemeId() { | 1606 public static int getThemeId() { |
| 1632 boolean useLowEndTheme = | 1607 boolean useLowEndTheme = |
| 1633 SysUtils.isLowEndDevice() && Build.VERSION.SDK_INT >= Build.VERS
ION_CODES.LOLLIPOP; | 1608 SysUtils.isLowEndDevice() && Build.VERSION.SDK_INT >= Build.VERS
ION_CODES.LOLLIPOP; |
| 1634 return (useLowEndTheme ? R.style.MainTheme_LowEnd : R.style.MainTheme); | 1609 return (useLowEndTheme ? R.style.MainTheme_LowEnd : R.style.MainTheme); |
| 1635 } | 1610 } |
| 1636 | 1611 |
| 1637 private void setLowEndTheme() { | 1612 private void setLowEndTheme() { |
| 1638 if (getThemeId() == R.style.MainTheme_LowEnd) setTheme(R.style.MainTheme
_LowEnd); | 1613 if (getThemeId() == R.style.MainTheme_LowEnd) setTheme(R.style.MainTheme
_LowEnd); |
| 1639 } | 1614 } |
| 1640 } | 1615 } |
| OLD | NEW |