SuggestionData.java revision 870b826dfbc5ef7518826007f22343dc963d6d04
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 21870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert 223e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert/** 233e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Holds data for each suggest item including the display data and how to launch the result. 243e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Used for passing from the provider to the suggest cursor. 253e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert */ 263e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertpublic class SuggestionData { 273e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 283e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert private final Source mSource; 29782dd228e78e9294692d639597f96c26283968bbBjorn Bringert private String mFormat; 30782dd228e78e9294692d639597f96c26283968bbBjorn Bringert private String mText1; 31782dd228e78e9294692d639597f96c26283968bbBjorn Bringert private String mText2; 32965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert private String mText2Url; 33782dd228e78e9294692d639597f96c26283968bbBjorn Bringert private String mIcon1; 34782dd228e78e9294692d639597f96c26283968bbBjorn Bringert private String mIcon2; 35782dd228e78e9294692d639597f96c26283968bbBjorn Bringert private String mShortcutId; 3604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert private boolean mSpinnerWhileRefreshing; 37fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert private String mIntentAction; 38fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert private String mIntentData; 39fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert private String mIntentExtraData; 40fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert private String mSuggestionQuery; 41dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert private String mLogType; 42782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 43782dd228e78e9294692d639597f96c26283968bbBjorn Bringert public SuggestionData(Source source) { 44782dd228e78e9294692d639597f96c26283968bbBjorn Bringert mSource = source; 45782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 463e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 47fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public Source getSuggestionSource() { 483e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mSource; 493e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 503e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 51fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionFormat() { 523e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mFormat; 533e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 543e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 55fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionText1() { 563e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mText1; 573e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 583e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 59fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionText2() { 603e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mText2; 613e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 623e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 63965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert public String getSuggestionText2Url() { 64965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert return mText2Url; 65965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert } 66965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert 67fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionIcon1() { 683e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mIcon1; 693e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 703e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 71fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionIcon2() { 723e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mIcon2; 733e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 743e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 7594e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney public boolean isSpinnerWhileRefreshing() { 7604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return mSpinnerWhileRefreshing; 7794e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney } 7894e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney 7994e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney public String getIntentExtraData() { 8004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return mIntentExtraData; 813e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 823e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 833e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public String getShortcutId() { 843e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mShortcutId; 853e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 863e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 87fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionIntentAction() { 88fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert return mIntentAction; 89fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 90fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 91fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionIntentDataString() { 92fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert return mIntentData; 93fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 94fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 95fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionIntentExtraData() { 96fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert return mIntentExtraData; 97fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 98fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 99fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public String getSuggestionQuery() { 100fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert return mSuggestionQuery; 101fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 102fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 103dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert public String getSuggestionLogType() { 104dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert return mLogType; 105dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert } 106dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert 107870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 10804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setFormat(String format) { 109782dd228e78e9294692d639597f96c26283968bbBjorn Bringert mFormat = format; 11004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 111782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 112782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 113870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 11404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setText1(String text1) { 115782dd228e78e9294692d639597f96c26283968bbBjorn Bringert mText1 = text1; 11604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 117782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 118782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 119870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 12004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setText2(String text2) { 121782dd228e78e9294692d639597f96c26283968bbBjorn Bringert mText2 = text2; 12204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 123782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 124782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 125870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 126965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert public SuggestionData setText2Url(String text2Url) { 127965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert mText2Url = text2Url; 128965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert return this; 129965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert } 130965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert 131870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 13204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setIcon1(String icon1) { 133782dd228e78e9294692d639597f96c26283968bbBjorn Bringert mIcon1 = icon1; 13404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 135782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 136782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 137870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 13804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setIcon2(String icon2) { 139782dd228e78e9294692d639597f96c26283968bbBjorn Bringert mIcon2 = icon2; 14004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 14104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } 14204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert 143870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 14404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setIntentAction(String intentAction) { 14504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert mIntentAction = intentAction; 14604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 14704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } 14804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert 149870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 15004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setIntentData(String intentData) { 15104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert mIntentData = intentData; 15204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 153782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 154782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 155870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 15604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setIntentExtraData(String intentExtraData) { 15704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert mIntentExtraData = intentExtraData; 15804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 159782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 160782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 161870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 16204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setSuggestionQuery(String suggestionQuery) { 16304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert mSuggestionQuery = suggestionQuery; 16404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 165782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 166782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 167870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 16804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setShortcutId(String shortcutId) { 169782dd228e78e9294692d639597f96c26283968bbBjorn Bringert mShortcutId = shortcutId; 17004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 17104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } 17204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert 173870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 17404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public SuggestionData setSpinnerWhileRefreshing(boolean spinnerWhileRefreshing) { 17504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert mSpinnerWhileRefreshing = spinnerWhileRefreshing; 17604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return this; 1773e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1783e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 179870b826dfbc5ef7518826007f22343dc963d6d04Bjorn Bringert @VisibleForTesting 180dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert public SuggestionData setSuggestionLogType(String logType) { 181dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert mLogType = logType; 182dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert return this; 183dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert } 184dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert 1853e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert private String makeKeyComponent(String str) { 1863e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return str == null ? "" : str; 1873e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1883e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 1893e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public String getSuggestionKey() { 19004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert String action = makeKeyComponent(mIntentAction); 19104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert String data = makeKeyComponent(mIntentData); 19204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert String query = makeKeyComponent(mSuggestionQuery); 1933e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert // calculating accurate size of string builder avoids an allocation vs starting with 1943e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert // the default size and having to expand. 1953e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert int size = action.length() + 2 + data.length() + query.length(); 1963e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return new StringBuilder(size) 1973e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert .append(action) 1983e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert .append('#') 1993e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert .append(data) 2003e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert .append('#') 2013e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert .append(query) 2023e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert .toString(); 2033e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 2043e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 2053e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert @Override 2063e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public int hashCode() { 20704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert final int prime = 31; 20804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert int result = 1; 20904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mFormat == null) ? 0 : mFormat.hashCode()); 21004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mIcon1 == null) ? 0 : mIcon1.hashCode()); 21104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mIcon2 == null) ? 0 : mIcon2.hashCode()); 21204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mIntentAction == null) ? 0 : mIntentAction.hashCode()); 21304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mIntentData == null) ? 0 : mIntentData.hashCode()); 21404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mIntentExtraData == null) ? 0 : mIntentExtraData.hashCode()); 215dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert result = prime * result + ((mLogType == null) ? 0 : mLogType.hashCode()); 21604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mShortcutId == null) ? 0 : mShortcutId.hashCode()); 21704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mSource == null) ? 0 : mSource.hashCode()); 21804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + (mSpinnerWhileRefreshing ? 1231 : 1237); 21904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mSuggestionQuery == null) ? 0 : mSuggestionQuery.hashCode()); 22004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mText1 == null) ? 0 : mText1.hashCode()); 22104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert result = prime * result + ((mText2 == null) ? 0 : mText2.hashCode()); 2223e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return result; 2233e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 2243e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 22504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert @Override 22604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert public boolean equals(Object obj) { 22704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (this == obj) 22804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return true; 22904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (obj == null) 23004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 23104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (getClass() != obj.getClass()) 23204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 23304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert SuggestionData other = (SuggestionData)obj; 23404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mFormat == null) { 23504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mFormat != null) 23604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 23704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mFormat.equals(other.mFormat)) 23804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 23904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mIcon1 == null) { 24004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mIcon1 != null) 24104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 24204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mIcon1.equals(other.mIcon1)) 24304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 24404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mIcon2 == null) { 24504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mIcon2 != null) 24604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 24704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mIcon2.equals(other.mIcon2)) 24804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 24904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mIntentAction == null) { 25004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mIntentAction != null) 25104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 25204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mIntentAction.equals(other.mIntentAction)) 25304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 25404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mIntentData == null) { 25504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mIntentData != null) 25604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 25704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mIntentData.equals(other.mIntentData)) 25804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 25904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mIntentExtraData == null) { 26004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mIntentExtraData != null) 26104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 26204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mIntentExtraData.equals(other.mIntentExtraData)) 26304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 264dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert if (mLogType == null) { 265dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert if (other.mLogType != null) 266dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert return false; 267dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert } else if (!mLogType.equals(other.mLogType)) 268dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert return false; 26904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mShortcutId == null) { 27004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mShortcutId != null) 27104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 27204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mShortcutId.equals(other.mShortcutId)) 27304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 27404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mSource == null) { 27504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mSource != null) 27604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 27704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mSource.equals(other.mSource)) 27804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 27904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mSpinnerWhileRefreshing != other.mSpinnerWhileRefreshing) 28004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 28104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mSuggestionQuery == null) { 28204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mSuggestionQuery != null) 28304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 28404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mSuggestionQuery.equals(other.mSuggestionQuery)) 28504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 28604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mText1 == null) { 28704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mText1 != null) 28804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 28904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mText1.equals(other.mText1)) 29004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 29104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (mText2 == null) { 29204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (other.mText2 != null) 29304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 29404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } else if (!mText2.equals(other.mText2)) 29504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return false; 29604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert return true; 2973e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 2983e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 2993e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert /** 3003e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Returns a string representation of the contents of this SuggestionData, 3013e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * for debugging purposes. 3023e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert */ 3033e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert @Override 3043e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public String toString() { 3053e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert StringBuilder builder = new StringBuilder("SuggestionData("); 306f252dc7a25ba08b973ecc1cfbbce58eb78d42167Bjorn Bringert appendField(builder, "source", mSource.getName()); 30704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert appendField(builder, "text1", mText1); 30804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert appendField(builder, "intentAction", mIntentAction); 30904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert appendField(builder, "intentData", mIntentData); 31004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert appendField(builder, "query", mSuggestionQuery); 31104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert appendField(builder, "shortcutid", mShortcutId); 312dbce1abe91200e83a41bcd95aaf5ea89496e5e48Bjorn Bringert appendField(builder, "logtype", mLogType); 3133e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return builder.toString(); 3143e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 3153e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 31604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert private void appendField(StringBuilder builder, String name, String value) { 31704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert if (value != null) { 31804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert builder.append(",").append(name).append("=").append(value); 31904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } 32004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert } 32104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert 3223e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert} 323