Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2256)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java

Issue 2394273002: [Android] Permanently disable "All bookmarks" and remove its experiment (Closed)
Patch Set: isherman's comment Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java
index 93f184e637623daceee6e11b2460daf7be6d95b9..d13ecd676f5d45943f5a04a1795eb69c1a03b5ca 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java
@@ -7,7 +7,6 @@ package org.chromium.chrome.browser.bookmarks;
import android.net.Uri;
import android.text.TextUtils;
-import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.browser.UrlConstants;
import org.chromium.components.bookmarks.BookmarkId;
@@ -16,11 +15,9 @@ import org.chromium.components.bookmarks.BookmarkId;
* states can be uniquely identified by a URL.
*/
class BookmarkUIState {
- static final String URI_PERSIST_QUERY_NAME = "persist";
-
static final int STATE_LOADING = 1;
- static final int STATE_ALL_BOOKMARKS = 2;
- static final int STATE_FOLDER = 3;
+ static final int STATE_FOLDER = 2;
+ private static final int STATE_INVALID = 0;
gone 2016/10/06 20:37:31 should this be above the other two?
/**
* One of the STATE_* constants.
@@ -36,48 +33,48 @@ class BookmarkUIState {
return state;
}
- /**
- * Depending on experiments we run, "all bookmarks" might be redirected to the default folder.
- */
- static BookmarkUIState createAllBookmarksState(BookmarkModel bookmarkModel) {
- if (!BookmarkUtils.isAllBookmarksViewEnabled()) {
- return createFolderState(bookmarkModel.getDefaultFolder(), null);
- }
- BookmarkUIState state = new BookmarkUIState();
- state.mState = STATE_ALL_BOOKMARKS;
- state.mUrl = UrlConstants.BOOKMARKS_URL;
- return state;
+ static BookmarkUIState createFolderState(BookmarkId folder,
+ BookmarkModel bookmarkModel) {
+ return createStateFromUrl(createFolderUrl(folder), bookmarkModel);
}
- static BookmarkUIState createFolderState(BookmarkId folder, BookmarkModel bookmarkModel) {
- if (folder == null) return createAllBookmarksState(bookmarkModel);
- BookmarkUIState state = new BookmarkUIState();
- state.mState = STATE_FOLDER;
- state.mUrl = UrlConstants.BOOKMARKS_FOLDER_URL + folder.toString();
- state.mFolder = folder;
- return state;
+ /**
+ * @see #createStateFromUrl(Uri, BookmarkModel)
+ */
+ static BookmarkUIState createStateFromUrl(String url, BookmarkModel bookmarkModel) {
+ return createStateFromUrl(Uri.parse(url), bookmarkModel);
}
/**
- * Parses the url and generates the corresponding state.
+ * @return A state corresponding to the URI object. If the URI is not valid,
+ * return all_bookmarks.
*/
- static BookmarkUIState createStateFromUrl(String url, BookmarkModel bookmarkModel) {
- if (url.equals(UrlConstants.BOOKMARKS_URL)) {
- return createAllBookmarksState(bookmarkModel);
- } else if (url.startsWith(UrlConstants.BOOKMARKS_FOLDER_URL)) {
- String path = url.substring(UrlConstants.BOOKMARKS_FOLDER_URL.length());
+ static BookmarkUIState createStateFromUrl(Uri uri, BookmarkModel bookmarkModel) {
+ BookmarkUIState state = new BookmarkUIState();
+ state.mState = STATE_INVALID;
+ state.mUrl = uri.toString();
+
+ if (state.mUrl.equals(UrlConstants.BOOKMARKS_URL)) {
+ return createFolderState(bookmarkModel.getDefaultFolder(), bookmarkModel);
+ } else if (state.mUrl.startsWith(UrlConstants.BOOKMARKS_FOLDER_URL)) {
+ String path = uri.getLastPathSegment();
if (!path.isEmpty()) {
- BookmarkId folder = BookmarkId.getBookmarkIdFromString(path);
- return createFolderState(folder, bookmarkModel);
+ state.mFolder = BookmarkId.getBookmarkIdFromString(path);
+ state.mState = STATE_FOLDER;
}
}
- // If this line is reached, the url is not valid. Fall back to all bookmarks.
- return createAllBookmarksState(bookmarkModel);
+
+ if (!state.isValid(bookmarkModel)) {
+ state = createFolderState(bookmarkModel.getDefaultFolder(), bookmarkModel);
+ }
+
+ return state;
}
- @VisibleForTesting
static Uri createFolderUrl(BookmarkId folderId) {
Uri.Builder builder = Uri.parse(UrlConstants.BOOKMARKS_FOLDER_URL).buildUpon();
+ // Encodes the path and appends it to the base url. A simple appending
+ // does not work because there might be spaces in suffix.
builder.appendPath(folderId.toString());
return builder.build();
}
@@ -97,13 +94,16 @@ class BookmarkUIState {
}
/**
- * @return Whether this state is valid
+ * @return Whether this state is valid.
*/
boolean isValid(BookmarkModel bookmarkModel) {
+ if (mUrl == null || mState == STATE_INVALID) return false;
+
if (mState == STATE_FOLDER) {
return mFolder != null && bookmarkModel.doesBookmarkExist(mFolder)
&& !mFolder.equals(bookmarkModel.getRootFolderId());
}
- return mUrl != null;
+
+ return true;
}
}

Powered by Google App Engine
This is Rietveld 408576698