| 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.enhancedbookmarks; |
| 6 | 6 |
| 7 import android.app.Activity; | 7 import android.app.Activity; |
| 8 import android.app.ActivityManager; | 8 import android.app.ActivityManager; |
| 9 import android.content.Context; | 9 import android.content.Context; |
| 10 import android.preference.PreferenceManager; | 10 import android.preference.PreferenceManager; |
| 11 import android.support.v4.widget.DrawerLayout; | 11 import android.support.v4.widget.DrawerLayout; |
| 12 import android.text.TextUtils; | |
| 13 import android.util.Log; | 12 import android.util.Log; |
| 14 import android.view.Gravity; | 13 import android.view.Gravity; |
| 15 import android.view.View; | 14 import android.view.View; |
| 16 import android.view.ViewGroup; | 15 import android.view.ViewGroup; |
| 17 import android.widget.ViewSwitcher; | 16 import android.widget.ViewSwitcher; |
| 18 | 17 |
| 19 import org.chromium.base.ApplicationStatus; | 18 import org.chromium.base.ApplicationStatus; |
| 20 import org.chromium.base.ObserverList; | 19 import org.chromium.base.ObserverList; |
| 21 import org.chromium.base.metrics.RecordHistogram; | |
| 22 import org.chromium.chrome.R; | 20 import org.chromium.chrome.R; |
| 23 import org.chromium.chrome.browser.UrlConstants; | 21 import org.chromium.chrome.browser.UrlConstants; |
| 24 import org.chromium.chrome.browser.bookmark.BookmarksBridge.BookmarkItem; | 22 import org.chromium.chrome.browser.bookmark.BookmarksBridge.BookmarkItem; |
| 25 import org.chromium.chrome.browser.bookmark.BookmarksBridge.BookmarkModelObserve
r; | 23 import org.chromium.chrome.browser.bookmark.BookmarksBridge.BookmarkModelObserve
r; |
| 26 import org.chromium.chrome.browser.favicon.LargeIconBridge; | 24 import org.chromium.chrome.browser.favicon.LargeIconBridge; |
| 27 import org.chromium.chrome.browser.ntp.NewTabPageUma; | |
| 28 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; | 25 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; |
| 29 import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim; | 26 import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim; |
| 30 import org.chromium.chrome.browser.profiles.Profile; | 27 import org.chromium.chrome.browser.profiles.Profile; |
| 31 import org.chromium.chrome.browser.snackbar.SnackbarManager; | 28 import org.chromium.chrome.browser.snackbar.SnackbarManager; |
| 32 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable; | 29 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable; |
| 33 import org.chromium.components.bookmarks.BookmarkId; | 30 import org.chromium.components.bookmarks.BookmarkId; |
| 34 import org.chromium.ui.base.DeviceFormFactor; | 31 import org.chromium.ui.base.DeviceFormFactor; |
| 35 | 32 |
| 36 import java.io.UnsupportedEncodingException; | 33 import java.io.UnsupportedEncodingException; |
| 37 import java.net.URLDecoder; | 34 import java.net.URLDecoder; |
| (...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 427 } | 424 } |
| 428 | 425 |
| 429 @Override | 426 @Override |
| 430 public DrawerLayout getDrawerLayout() { | 427 public DrawerLayout getDrawerLayout() { |
| 431 return mDrawer; | 428 return mDrawer; |
| 432 } | 429 } |
| 433 | 430 |
| 434 @Override | 431 @Override |
| 435 public void openBookmark(BookmarkId bookmark, int launchLocation) { | 432 public void openBookmark(BookmarkId bookmark, int launchLocation) { |
| 436 clearSelection(); | 433 clearSelection(); |
| 437 if (mEnhancedBookmarksModel.getBookmarkById(bookmark) != null) { | 434 if (EnhancedBookmarkUtils.openBookmark( |
| 438 String url = mEnhancedBookmarksModel.getLaunchUrlAndMarkAccessed(mAc
tivity, bookmark); | 435 mEnhancedBookmarksModel, mActivity, bookmark, launchLocation
)) { |
| 439 // TODO(jianli): Notify the user about the failure. | |
| 440 if (TextUtils.isEmpty(url)) return; | |
| 441 | |
| 442 NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_BOOKMARK); | |
| 443 if (url.startsWith("file:")) { | |
| 444 RecordHistogram.recordEnumeratedHistogram("OfflinePages.LaunchLo
cation", | |
| 445 launchLocation, LaunchLocation.COUNT); | |
| 446 } else { | |
| 447 RecordHistogram.recordEnumeratedHistogram("Stars.LaunchLocation"
, launchLocation, | |
| 448 LaunchLocation.COUNT); | |
| 449 } | |
| 450 EnhancedBookmarkUtils.openBookmark(mActivity, url); | |
| 451 EnhancedBookmarkUtils.finishActivityOnPhone(mActivity); | 436 EnhancedBookmarkUtils.finishActivityOnPhone(mActivity); |
| 452 } | 437 } |
| 453 } | 438 } |
| 454 | 439 |
| 455 @Override | 440 @Override |
| 456 public void openSearchUI() { | 441 public void openSearchUI() { |
| 457 // Give search view focus, because it needs to handle back key event. | 442 // Give search view focus, because it needs to handle back key event. |
| 458 mViewSwitcher.showNext(); | 443 mViewSwitcher.showNext(); |
| 459 } | 444 } |
| 460 | 445 |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 616 } | 601 } |
| 617 | 602 |
| 618 @Override | 603 @Override |
| 619 public boolean equals(Object obj) { | 604 public boolean equals(Object obj) { |
| 620 if (!(obj instanceof UIState)) return false; | 605 if (!(obj instanceof UIState)) return false; |
| 621 UIState other = (UIState) obj; | 606 UIState other = (UIState) obj; |
| 622 return mState == other.mState && mUrl.equals(other.mUrl); | 607 return mState == other.mState && mUrl.equals(other.mUrl); |
| 623 } | 608 } |
| 624 } | 609 } |
| 625 } | 610 } |
| OLD | NEW |