SuggestionData.java revision 38eb02e676db9e5a633e3c88a90beb8a477b1ca1
13e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert/* 23e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Copyright (C) 2009 The Android Open Source Project 33e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * 43e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License"); 53e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * you may not use this file except in compliance with the License. 63e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * You may obtain a copy of the License at 73e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * 83e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * http://www.apache.org/licenses/LICENSE-2.0 93e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * 103e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Unless required by applicable law or agreed to in writing, software 113e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS, 123e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * See the License for the specific language governing permissions and 143e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * limitations under the License. 153e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert */ 163e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 173e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertpackage com.android.quicksearchbox; 183e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 19870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringertimport com.google.common.annotations.VisibleForTesting; 20870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert 2138eb02e676db9e5a633e3c88a90beb8a477b1ca1Bjorn Bringertimport android.content.ComponentName; 2293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringertimport android.content.Intent; 2393bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 24870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert 253e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert/** 263e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Holds data for each suggest item including the display data and how to launch the result. 273e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Used for passing from the provider to the suggest cursor. 283e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert */ 2993bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringertpublic class SuggestionData implements Suggestion { 303e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 313e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert private final Source mSource; 32782dd228e78e9294692d639597f96c26283968bbBjorn Bringert private String mFormat; 33782dd228e78e9294692d639597f96c26283968bbBjorn Bringert private String mText1; 34782dd228e78e9294692d639597f96c26283968bbBjorn Bringert private String mText2; 35965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert private String mText2Url; 36782dd228e78e9294692d639597f96c26283968bbBjorn Bringert private String mIcon1; 37782dd228e78e9294692d639597f96c26283968bbBjorn Bringert private String mIcon2; 38782dd228e78e9294692d639597f96c26283968bbBjorn Bringert private String mShortcutId; 3904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert private boolean mSpinnerWhileRefreshing; 40fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert private String mIntentAction; 41fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert private String mIntentData; 42fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert private String mIntentExtraData; 43fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert private String mSuggestionQuery; 44dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert private String mLogType; 4593bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert private boolean mIsShortcut; 46782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 47782dd228e78e9294692d639597f96c26283968bbBjorn Bringert public SuggestionData(Source source) { 48782dd228e78e9294692d639597f96c26283968bbBjorn Bringert mSource = source; 49782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 503e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 51fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public Source getSuggestionSource() { 523e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mSource; 533e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 543e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 55fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionFormat() { 563e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mFormat; 573e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 583e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 59fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionText1() { 603e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mText1; 613e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 623e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 63fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionText2() { 643e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mText2; 653e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 663e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 67965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert public String getSuggestionText2Url() { 68965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert return mText2Url; 69965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert } 70965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert 71fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionIcon1() { 723e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mIcon1; 733e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 743e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 75fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionIcon2() { 763e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mIcon2; 773e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 783e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 7994e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney public boolean isSpinnerWhileRefreshing() { 8004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return mSpinnerWhileRefreshing; 8194e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney } 8294e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney 8394e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney public String getIntentExtraData() { 8404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return mIntentExtraData; 853e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 863e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 873e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public String getShortcutId() { 883e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mShortcutId; 893e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 903e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 91fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionIntentAction() { 9293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert if (mIntentAction != null) return mIntentAction; 9393bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert return mSource.getDefaultIntentAction(); 94fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 95fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 9638eb02e676db9e5a633e3c88a90beb8a477b1ca1Bjorn Bringert public ComponentName getSuggestionIntentComponent() { 9738eb02e676db9e5a633e3c88a90beb8a477b1ca1Bjorn Bringert return mSource.getIntentComponent(); 9838eb02e676db9e5a633e3c88a90beb8a477b1ca1Bjorn Bringert } 9938eb02e676db9e5a633e3c88a90beb8a477b1ca1Bjorn Bringert 100fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionIntentDataString() { 101fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert return mIntentData; 102fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 103fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 104fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionIntentExtraData() { 105fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert return mIntentExtraData; 106fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 107fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 108fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionQuery() { 109fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert return mSuggestionQuery; 110fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 111fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 112dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert public String getSuggestionLogType() { 113dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert return mLogType; 114dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert } 115dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert 11693bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert public boolean isSuggestionShortcut() { 11793bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert return mIsShortcut; 11893bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert } 11993bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 12093bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert public boolean isWebSearchSuggestion() { 12193bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert return Intent.ACTION_WEB_SEARCH.equals(getSuggestionIntentAction()); 12293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert } 12393bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 124870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 12504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setFormat(String format) { 126782dd228e78e9294692d639597f96c26283968bbBjorn Bringert mFormat = format; 12704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 128782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 129782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 130870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 13104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setText1(String text1) { 132782dd228e78e9294692d639597f96c26283968bbBjorn Bringert mText1 = text1; 13304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 134782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 135782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 136870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 13704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setText2(String text2) { 138782dd228e78e9294692d639597f96c26283968bbBjorn Bringert mText2 = text2; 13904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 140782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 141782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 142870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 143965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert public SuggestionData setText2Url(String text2Url) { 144965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert mText2Url = text2Url; 145965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert return this; 146965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert } 147965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert 148870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 14904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setIcon1(String icon1) { 150782dd228e78e9294692d639597f96c26283968bbBjorn Bringert mIcon1 = icon1; 15104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 152782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 153782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 154870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 15504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setIcon2(String icon2) { 156782dd228e78e9294692d639597f96c26283968bbBjorn Bringert mIcon2 = icon2; 15704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 15804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } 15904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert 160870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 16104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setIntentAction(String intentAction) { 16204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert mIntentAction = intentAction; 16304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 16404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } 16504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert 166870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 16704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setIntentData(String intentData) { 16804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert mIntentData = intentData; 16904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 170782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 171782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 172870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 17304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setIntentExtraData(String intentExtraData) { 17404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert mIntentExtraData = intentExtraData; 17504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 176782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 177782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 178870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 17904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setSuggestionQuery(String suggestionQuery) { 18004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert mSuggestionQuery = suggestionQuery; 18104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 182782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 183782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 184870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 18504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setShortcutId(String shortcutId) { 186782dd228e78e9294692d639597f96c26283968bbBjorn Bringert mShortcutId = shortcutId; 18704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 18804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } 18904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert 190870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 19104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setSpinnerWhileRefreshing(boolean spinnerWhileRefreshing) { 19204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert mSpinnerWhileRefreshing = spinnerWhileRefreshing; 19304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 1943e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1953e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 196870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 197dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert public SuggestionData setSuggestionLogType(String logType) { 198dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert mLogType = logType; 199dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert return this; 200dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert } 201dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert 20293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert @VisibleForTesting 20393bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert public SuggestionData setIsShortcut(boolean isShortcut) { 20493bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert mIsShortcut = isShortcut; 20593bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert return this; 2063e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 2073e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 2083e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert @Override 2093e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public int hashCode() { 21004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert final int prime = 31; 21104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert int result = 1; 21204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mFormat == null) ? 0 : mFormat.hashCode()); 21304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mIcon1 == null) ? 0 : mIcon1.hashCode()); 21404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mIcon2 == null) ? 0 : mIcon2.hashCode()); 21504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mIntentAction == null) ? 0 : mIntentAction.hashCode()); 21604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mIntentData == null) ? 0 : mIntentData.hashCode()); 21704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mIntentExtraData == null) ? 0 : mIntentExtraData.hashCode()); 218dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert result = prime * result + ((mLogType == null) ? 0 : mLogType.hashCode()); 21904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mShortcutId == null) ? 0 : mShortcutId.hashCode()); 22004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mSource == null) ? 0 : mSource.hashCode()); 22104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + (mSpinnerWhileRefreshing ? 1231 : 1237); 22204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mSuggestionQuery == null) ? 0 : mSuggestionQuery.hashCode()); 22304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mText1 == null) ? 0 : mText1.hashCode()); 22404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mText2 == null) ? 0 : mText2.hashCode()); 2253e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return result; 2263e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 2273e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 22804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert @Override 22904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public boolean equals(Object obj) { 23004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (this == obj) 23104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return true; 23204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (obj == null) 23304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 23404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (getClass() != obj.getClass()) 23504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 23604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert SuggestionData other = (SuggestionData)obj; 23704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mFormat == null) { 23804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mFormat != null) 23904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 24004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mFormat.equals(other.mFormat)) 24104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 24204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mIcon1 == null) { 24304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mIcon1 != null) 24404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 24504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mIcon1.equals(other.mIcon1)) 24604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 24704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mIcon2 == null) { 24804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mIcon2 != null) 24904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 25004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mIcon2.equals(other.mIcon2)) 25104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 25204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mIntentAction == null) { 25304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mIntentAction != null) 25404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 25504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mIntentAction.equals(other.mIntentAction)) 25604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 25704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mIntentData == null) { 25804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mIntentData != null) 25904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 26004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mIntentData.equals(other.mIntentData)) 26104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 26204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mIntentExtraData == null) { 26304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mIntentExtraData != null) 26404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 26504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mIntentExtraData.equals(other.mIntentExtraData)) 26604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 267dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert if (mLogType == null) { 268dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert if (other.mLogType != null) 269dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert return false; 270dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert } else if (!mLogType.equals(other.mLogType)) 271dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert return false; 27204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mShortcutId == null) { 27304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mShortcutId != null) 27404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 27504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mShortcutId.equals(other.mShortcutId)) 27604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 27704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mSource == null) { 27804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mSource != null) 27904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 28004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mSource.equals(other.mSource)) 28104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 28204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mSpinnerWhileRefreshing != other.mSpinnerWhileRefreshing) 28304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 28404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mSuggestionQuery == null) { 28504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mSuggestionQuery != null) 28604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 28704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mSuggestionQuery.equals(other.mSuggestionQuery)) 28804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 28904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mText1 == null) { 29004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mText1 != null) 29104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 29204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mText1.equals(other.mText1)) 29304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 29404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mText2 == null) { 29504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mText2 != null) 29604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 29704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mText2.equals(other.mText2)) 29804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 29904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return true; 3003e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 3013e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 3023e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert /** 3033e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Returns a string representation of the contents of this SuggestionData, 3043e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * for debugging purposes. 3053e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert */ 3063e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert @Override 3073e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public String toString() { 3083e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert StringBuilder builder = new StringBuilder("SuggestionData("); 309f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert appendField(builder, "source", mSource.getName()); 31004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert appendField(builder, "text1", mText1); 31104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert appendField(builder, "intentAction", mIntentAction); 31204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert appendField(builder, "intentData", mIntentData); 31304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert appendField(builder, "query", mSuggestionQuery); 31404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert appendField(builder, "shortcutid", mShortcutId); 315dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert appendField(builder, "logtype", mLogType); 3163e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return builder.toString(); 3173e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 3183e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 31904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert private void appendField(StringBuilder builder, String name, String value) { 32004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (value != null) { 32104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert builder.append(",").append(name).append("=").append(value); 32204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } 32304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } 32404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert 3253e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert} 326