| Index: chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUtils.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUtils.java
|
| index 938d83805bff5c36a4eb809e5d1f1062863c7ecf..62873dfa598291b1aa9c4fbe5669534942a968bb 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUtils.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkUtils.java
|
| @@ -12,8 +12,10 @@ import android.net.Uri;
|
| import android.os.AsyncTask;
|
| import android.os.Bundle;
|
| import android.provider.Browser;
|
| +import android.text.TextUtils;
|
|
|
| import org.chromium.base.ApiCompatibilityUtils;
|
| +import org.chromium.base.metrics.RecordHistogram;
|
| import org.chromium.base.metrics.RecordUserAction;
|
| import org.chromium.chrome.R;
|
| import org.chromium.chrome.browser.ChromeBrowserProviderClient;
|
| @@ -24,6 +26,7 @@ import org.chromium.chrome.browser.bookmark.BookmarksBridge.BookmarkItem;
|
| import org.chromium.chrome.browser.document.ChromeLauncherActivity;
|
| import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarksModel.AddBookmarkCallback;
|
| import org.chromium.chrome.browser.favicon.FaviconHelper;
|
| +import org.chromium.chrome.browser.ntp.NewTabPageUma;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageFreeUpSpaceCallback;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageFreeUpSpaceDialog;
|
| @@ -263,7 +266,7 @@ public class EnhancedBookmarkUtils {
|
| return false;
|
| }
|
| if (DeviceFormFactor.isTablet(activity)) {
|
| - openBookmark(activity, UrlConstants.BOOKMARKS_URL);
|
| + openUrl(activity, UrlConstants.BOOKMARKS_URL);
|
| } else {
|
| activity.startActivity(new Intent(activity, EnhancedBookmarkActivity.class));
|
| }
|
| @@ -319,7 +322,37 @@ public class EnhancedBookmarkUtils {
|
| return BookmarkId.getBookmarkIdFromString(bundle.getString(BOOKMARK_SAVE_NAME));
|
| }
|
|
|
| - public static void openBookmark(Activity activity, String url) {
|
| + /**
|
| + * Opens a bookmark depending on connection status and reports UMA.
|
| + * @param model Enhanced bookmarks model to manage the bookmark.
|
| + * @param activity Activity requesting to open the bookmark.
|
| + * @param bookmarkId ID of the bookmark to be opened.
|
| + * @param launchLocation Location from which the bookmark is being opened.
|
| + * @return Whether the bookmark was successfully opened.
|
| + */
|
| + public static boolean openBookmark(EnhancedBookmarksModel model, Activity activity,
|
| + BookmarkId bookmarkId, int launchLocation) {
|
| + if (model.getBookmarkById(bookmarkId) == null) return false;
|
| +
|
| + String url = model.getLaunchUrlAndMarkAccessed(activity, bookmarkId);
|
| +
|
| + // TODO(jianli): Notify the user about the failure.
|
| + if (TextUtils.isEmpty(url)) return false;
|
| +
|
| + NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_BOOKMARK);
|
| + if (url.startsWith("file:")) {
|
| + RecordHistogram.recordEnumeratedHistogram(
|
| + "OfflinePages.LaunchLocation", launchLocation, LaunchLocation.COUNT);
|
| + } else {
|
| + RecordHistogram.recordEnumeratedHistogram(
|
| + "Stars.LaunchLocation", launchLocation, LaunchLocation.COUNT);
|
| + }
|
| +
|
| + openUrl(activity, url);
|
| + return true;
|
| + }
|
| +
|
| + private static void openUrl(Activity activity, String url) {
|
| Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
|
| intent.setClassName(activity.getApplicationContext().getPackageName(),
|
| ChromeLauncherActivity.class.getName());
|
|
|