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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestion.java

Issue 285633002: Upstream AutocompleteController and related classes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix a bug in OmniboxSuggestion.hashCode and rename weak reference in autocomplete controller Created 6 years, 7 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/omnibox/OmniboxSuggestion.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestion.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestion.java
new file mode 100644
index 0000000000000000000000000000000000000000..9ad4d19f8120f3fa0d56670f93b615c9e5c2afd9
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestion.java
@@ -0,0 +1,171 @@
+// Copyright 2010 The Chromium Authors. All rights reserved.
Ted C 2014/05/14 00:49:23 2014
Maria 2014/05/14 01:54:22 Done.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.omnibox;
+
+import android.text.TextUtils;
+
+import com.google.common.annotations.VisibleForTesting;
+
+/**
+ * Container class with information about each omnibox suggestion item.
+ */
+@VisibleForTesting
+public class OmniboxSuggestion {
+
+ private final Type mType;
+ private final String mDisplayText;
+ private final String mDescription;
+ private final String mFillIntoEdit;
+ private final String mUrl;
+ private final String mFormattedUrl;
+ private final int mRelevance;
+ private final int mTransition;
+ private final boolean mIsStarred;
+ private final boolean mIsDeletable;
+
+ /**
+ * This should be kept in sync with AutocompleteMatch::Type
+ * (see chrome/common/autocomplete_match_type.h).
+ * Negative types are specific to Chrome on Android front-end.
+ */
+ public static enum Type {
+ VOICE_SUGGEST (-100), // A suggested search from the voice recognizer.
+
+ URL_WHAT_YOU_TYPED (0), // The input as a URL.
+ HISTORY_URL (1), // A past page whose URL contains the input.
+ HISTORY_TITLE (2), // A past page whose title contains the input.
+ HISTORY_BODY (3), // A past page whose body contains the input.
+ HISTORY_KEYWORD (4), // A past page whose keyword contains the input.
+ NAVSUGGEST (5), // A suggested URL.
+ SEARCH_WHAT_YOU_TYPED (6), // The input as a search query (with the default
+ // engine).
+ SEARCH_HISTORY (7), // A past search (with the default engine)
+ // containing the input.
+ SEARCH_SUGGEST (8), // A suggested search (with the default engine).
+ SEARCH_SUGGEST_ENTITY (9), // A suggested search for an entity.
+ SEARCH_SUGGEST_INFINITE (10), // A suggested search (with the default engine)
+ // to complete the tail part of the input.
+ SEARCH_SUGGEST_PERSONALIZED (11), // A personalized suggested search.
+ SEARCH_SUGGEST_PROFILE (12), // A personalized suggested search for a
+ // Google+ profile.
+ SEARCH_OTHER_ENGINE (13), // A search with a non-default engine.
+ OPEN_HISTORY_PAGE (17); // A synthetic result that opens the history page
+ // to search for the input.
+
+ private final int mNativeType;
+
+ Type(int nativeType) {
+ mNativeType = nativeType;
+ }
+
+ static Type getTypeFromNativeType(int nativeType) {
+ for (Type t : Type.values()) {
+ if (t.mNativeType == nativeType)
Ted C 2014/05/14 00:49:23 make this a one liner
Maria 2014/05/14 01:54:22 Done.
+ return t;
+ }
+
+ return URL_WHAT_YOU_TYPED;
+ }
+
+ public boolean isHistoryUrl() {
+ return this == HISTORY_URL || this == HISTORY_TITLE ||
+ this == HISTORY_BODY || this == HISTORY_KEYWORD;
+ }
+
+ public boolean isUrl() {
+ return this == URL_WHAT_YOU_TYPED || this.isHistoryUrl() || this == NAVSUGGEST;
+ }
+
+ /**
+ * @return The ID of the type used by the native code.
+ */
+ public int nativeType() {
+ return mNativeType;
+ }
+ }
+
+ public OmniboxSuggestion(int nativeType, int relevance, int transition,
+ String text, String description, String fillIntoEdit, String url,
+ String formattedUrl, boolean isStarred, boolean isDeletable) {
+ mType = Type.getTypeFromNativeType(nativeType);
+ mRelevance = relevance;
+ mTransition = transition;
+ mDisplayText = text;
+ mDescription = description;
+ mFillIntoEdit = TextUtils.isEmpty(fillIntoEdit) ? text : fillIntoEdit;
+ mUrl = url;
+ mFormattedUrl = formattedUrl;
+ mIsStarred = isStarred;
+ mIsDeletable = isDeletable;
+ }
+
+ public Type getType() {
+ return mType;
+ }
+
+ public int getTransition() {
+ return mTransition;
+ }
+
+ public String getDisplayText() {
+ return mDisplayText;
+ }
+
+ public String getDescription() {
+ return mDescription;
+ }
+
+ public String getFillIntoEdit() {
+ return mFillIntoEdit;
+ }
+
+ public String getUrl() {
+ return mUrl;
+ }
+
+ public String getFormattedUrl() {
+ return mFormattedUrl;
+ }
+
+ public boolean isUrlSuggestion() {
+ return mType.isUrl();
+ }
+
+ /**
+ * @return Whether this suggestion represents a starred/bookmarked URL.
+ */
+ public boolean isStarred() {
+ return mIsStarred;
+ }
+
+ public boolean isDeletable() {
+ return mIsDeletable;
+ }
+
+ @Override
+ public String toString() {
+ return mType + " relevance=" + mRelevance + " \"" + mDisplayText + "\" -> " + mUrl;
+ }
+
+ @Override
+ public int hashCode() {
+ return 37 * mType.mNativeType + mDisplayText.hashCode() + mFillIntoEdit.hashCode() +
+ (mIsStarred ? 1 : 0) + (mIsDeletable ? 1 : 0);
Maria 2014/05/14 01:54:22 FYI, I fixed up hashCode() method as part of this
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof OmniboxSuggestion)) {
+ return false;
+ }
+
+ OmniboxSuggestion suggestion = (OmniboxSuggestion) obj;
+ return mType == suggestion.mType
+ && mFillIntoEdit.equals(suggestion.mFillIntoEdit)
+ && mDisplayText.equals(suggestion.mDisplayText)
+ && mIsStarred == suggestion.mIsStarred
+ && mIsDeletable == suggestion.mIsDeletable;
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698