SuggestionData.java revision 965d98377ddfdc52b772c2444d840000b665e000
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
193e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert/**
203e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Holds data for each suggest item including the display data and how to launch the result.
213e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Used for passing from the provider to the suggest cursor.
223e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert *
233e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert */
243e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertpublic class SuggestionData {
253e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
263e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    private final Source mSource;
27782dd228e78e9294692d639597f96c26283968bbBjorn Bringert    private String mFormat;
28782dd228e78e9294692d639597f96c26283968bbBjorn Bringert    private String mText1;
29782dd228e78e9294692d639597f96c26283968bbBjorn Bringert    private String mText2;
30965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert    private String mText2Url;
31782dd228e78e9294692d639597f96c26283968bbBjorn Bringert    private String mIcon1;
32782dd228e78e9294692d639597f96c26283968bbBjorn Bringert    private String mIcon2;
33782dd228e78e9294692d639597f96c26283968bbBjorn Bringert    private String mShortcutId;
3404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    private boolean mSpinnerWhileRefreshing;
35fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    private String mIntentAction;
36fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    private String mIntentData;
37fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    private String mIntentExtraData;
38fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    private String mSuggestionQuery;
39782dd228e78e9294692d639597f96c26283968bbBjorn Bringert
40782dd228e78e9294692d639597f96c26283968bbBjorn Bringert    public SuggestionData(Source source) {
41782dd228e78e9294692d639597f96c26283968bbBjorn Bringert        mSource = source;
42782dd228e78e9294692d639597f96c26283968bbBjorn Bringert    }
433e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
44fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public Source getSuggestionSource() {
453e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert        return mSource;
463e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    }
473e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
48fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public String getSuggestionFormat() {
493e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert        return mFormat;
503e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    }
513e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
52fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public String getSuggestionText1() {
533e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert        return mText1;
543e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    }
553e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
56fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public String getSuggestionText2() {
573e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert        return mText2;
583e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    }
593e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
60965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert    public String getSuggestionText2Url() {
61965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert        return mText2Url;
62965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert    }
63965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert
64fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public String getSuggestionIcon1() {
653e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert        return mIcon1;
663e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    }
673e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
68fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public String getSuggestionIcon2() {
693e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert        return mIcon2;
703e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    }
713e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
7294e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney    public boolean isSpinnerWhileRefreshing() {
7304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        return mSpinnerWhileRefreshing;
7494e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney    }
7594e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney
7694e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney    public String getIntentExtraData() {
7704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        return mIntentExtraData;
783e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    }
793e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
803e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    public String getShortcutId() {
813e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert        return mShortcutId;
823e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    }
833e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
84fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public String getSuggestionIntentAction() {
85fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        return mIntentAction;
86fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
87fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
88fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public String getSuggestionIntentDataString() {
89fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        return mIntentData;
90fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
91fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
92fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public String getSuggestionIntentExtraData() {
93fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        return mIntentExtraData;
94fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
95fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
96fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public String getSuggestionQuery() {
97fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        return mSuggestionQuery;
98fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
99fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
10004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    public SuggestionData setFormat(String format) {
101782dd228e78e9294692d639597f96c26283968bbBjorn Bringert        mFormat = format;
10204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        return this;
103782dd228e78e9294692d639597f96c26283968bbBjorn Bringert    }
104782dd228e78e9294692d639597f96c26283968bbBjorn Bringert
10504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    public SuggestionData setText1(String text1) {
106782dd228e78e9294692d639597f96c26283968bbBjorn Bringert        mText1 = text1;
10704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        return this;
108782dd228e78e9294692d639597f96c26283968bbBjorn Bringert    }
109782dd228e78e9294692d639597f96c26283968bbBjorn Bringert
11004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    public SuggestionData setText2(String text2) {
111782dd228e78e9294692d639597f96c26283968bbBjorn Bringert        mText2 = text2;
11204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        return this;
113782dd228e78e9294692d639597f96c26283968bbBjorn Bringert    }
114782dd228e78e9294692d639597f96c26283968bbBjorn Bringert
115965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert    public SuggestionData setText2Url(String text2Url) {
116965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert        mText2Url = text2Url;
117965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert        return this;
118965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert    }
119965d98377ddfdc52b772c2444d840000b665e000Bjorn Bringert
12004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    public SuggestionData setIcon1(String icon1) {
121782dd228e78e9294692d639597f96c26283968bbBjorn Bringert        mIcon1 = icon1;
12204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        return this;
123782dd228e78e9294692d639597f96c26283968bbBjorn Bringert    }
124782dd228e78e9294692d639597f96c26283968bbBjorn Bringert
12504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    public SuggestionData setIcon2(String icon2) {
126782dd228e78e9294692d639597f96c26283968bbBjorn Bringert        mIcon2 = icon2;
12704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        return this;
12804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    }
12904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert
13004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    public SuggestionData setIntentAction(String intentAction) {
13104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        mIntentAction = intentAction;
13204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        return this;
13304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    }
13404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert
13504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    public SuggestionData setIntentData(String intentData) {
13604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        mIntentData = intentData;
13704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        return this;
138782dd228e78e9294692d639597f96c26283968bbBjorn Bringert    }
139782dd228e78e9294692d639597f96c26283968bbBjorn Bringert
14004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    public SuggestionData setIntentExtraData(String intentExtraData) {
14104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        mIntentExtraData = intentExtraData;
14204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        return this;
143782dd228e78e9294692d639597f96c26283968bbBjorn Bringert    }
144782dd228e78e9294692d639597f96c26283968bbBjorn Bringert
14504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    public SuggestionData setSuggestionQuery(String suggestionQuery) {
14604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        mSuggestionQuery = suggestionQuery;
14704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        return this;
148782dd228e78e9294692d639597f96c26283968bbBjorn Bringert    }
149782dd228e78e9294692d639597f96c26283968bbBjorn Bringert
15004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    public SuggestionData setShortcutId(String shortcutId) {
151782dd228e78e9294692d639597f96c26283968bbBjorn Bringert        mShortcutId = shortcutId;
15204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        return this;
15304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    }
15404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert
15504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    public SuggestionData setSpinnerWhileRefreshing(boolean spinnerWhileRefreshing) {
15604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        mSpinnerWhileRefreshing = spinnerWhileRefreshing;
15704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        return this;
1583e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    }
1593e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
1603e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    private String makeKeyComponent(String str) {
1613e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert        return str == null ? "" : str;
1623e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    }
1633e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
1643e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    public String getSuggestionKey() {
16504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        String action = makeKeyComponent(mIntentAction);
16604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        String data = makeKeyComponent(mIntentData);
16704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        String query = makeKeyComponent(mSuggestionQuery);
1683e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert        // calculating accurate size of string builder avoids an allocation vs starting with
1693e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert        // the default size and having to expand.
1703e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert        int size = action.length() + 2 + data.length() + query.length();
1713e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert        return new StringBuilder(size)
1723e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert                .append(action)
1733e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert                .append('#')
1743e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert                .append(data)
1753e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert                .append('#')
1763e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert                .append(query)
1773e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert                .toString();
1783e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    }
1793e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
180fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public String getSuggestionLogType() {
181fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        return getSuggestionSource().getLogName();
182fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
183fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
1843e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    @Override
1853e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    public int hashCode() {
18604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        final int prime = 31;
18704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        int result = 1;
18804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        result = prime * result + ((mFormat == null) ? 0 : mFormat.hashCode());
18904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        result = prime * result + ((mIcon1 == null) ? 0 : mIcon1.hashCode());
19004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        result = prime * result + ((mIcon2 == null) ? 0 : mIcon2.hashCode());
19104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        result = prime * result + ((mIntentAction == null) ? 0 : mIntentAction.hashCode());
19204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        result = prime * result + ((mIntentData == null) ? 0 : mIntentData.hashCode());
19304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        result = prime * result + ((mIntentExtraData == null) ? 0 : mIntentExtraData.hashCode());
19404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        result = prime * result + ((mShortcutId == null) ? 0 : mShortcutId.hashCode());
19504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        result = prime * result + ((mSource == null) ? 0 : mSource.hashCode());
19604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        result = prime * result + (mSpinnerWhileRefreshing ? 1231 : 1237);
19704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        result = prime * result + ((mSuggestionQuery == null) ? 0 : mSuggestionQuery.hashCode());
19804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        result = prime * result + ((mText1 == null) ? 0 : mText1.hashCode());
19904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        result = prime * result + ((mText2 == null) ? 0 : mText2.hashCode());
2003e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert        return result;
2013e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    }
2023e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
20304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    @Override
20404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    public boolean equals(Object obj) {
20504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (this == obj)
20604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            return true;
20704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (obj == null)
20804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            return false;
20904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (getClass() != obj.getClass())
21004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            return false;
21104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        SuggestionData other = (SuggestionData)obj;
21204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (mFormat == null) {
21304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            if (other.mFormat != null)
21404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert                return false;
21504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        } else if (!mFormat.equals(other.mFormat))
21604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            return false;
21704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (mIcon1 == null) {
21804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            if (other.mIcon1 != null)
21904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert                return false;
22004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        } else if (!mIcon1.equals(other.mIcon1))
22104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            return false;
22204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (mIcon2 == null) {
22304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            if (other.mIcon2 != null)
22404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert                return false;
22504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        } else if (!mIcon2.equals(other.mIcon2))
22604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            return false;
22704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (mIntentAction == null) {
22804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            if (other.mIntentAction != null)
22904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert                return false;
23004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        } else if (!mIntentAction.equals(other.mIntentAction))
23104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            return false;
23204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (mIntentData == null) {
23304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            if (other.mIntentData != null)
23404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert                return false;
23504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        } else if (!mIntentData.equals(other.mIntentData))
23604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            return false;
23704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (mIntentExtraData == null) {
23804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            if (other.mIntentExtraData != null)
23904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert                return false;
24004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        } else if (!mIntentExtraData.equals(other.mIntentExtraData))
24104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            return false;
24204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (mShortcutId == null) {
24304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            if (other.mShortcutId != null)
24404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert                return false;
24504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        } else if (!mShortcutId.equals(other.mShortcutId))
24604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            return false;
24704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (mSource == null) {
24804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            if (other.mSource != null)
24904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert                return false;
25004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        } else if (!mSource.equals(other.mSource))
25104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            return false;
25204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (mSpinnerWhileRefreshing != other.mSpinnerWhileRefreshing)
25304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            return false;
25404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (mSuggestionQuery == null) {
25504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            if (other.mSuggestionQuery != null)
25604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert                return false;
25704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        } else if (!mSuggestionQuery.equals(other.mSuggestionQuery))
25804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            return false;
25904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (mText1 == null) {
26004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            if (other.mText1 != null)
26104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert                return false;
26204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        } else if (!mText1.equals(other.mText1))
26304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            return false;
26404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (mText2 == null) {
26504a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            if (other.mText2 != null)
26604a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert                return false;
26704a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        } else if (!mText2.equals(other.mText2))
26804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            return false;
26904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        return true;
2703e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    }
2713e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
2723e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    /**
2733e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert     * Returns a string representation of the contents of this SuggestionData,
2743e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert     * for debugging purposes.
2753e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert     */
2763e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    @Override
2773e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    public String toString() {
2783e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert        StringBuilder builder = new StringBuilder("SuggestionData(");
27904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        appendField(builder, "source", mSource.getFlattenedComponentName());
28004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        appendField(builder, "text1", mText1);
28104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        appendField(builder, "intentAction", mIntentAction);
28204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        appendField(builder, "intentData", mIntentData);
28304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        appendField(builder, "query", mSuggestionQuery);
28404a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        appendField(builder, "shortcutid", mShortcutId);
2853e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert        return builder.toString();
2863e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert    }
2873e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert
28804a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    private void appendField(StringBuilder builder, String name, String value) {
28904a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        if (value != null) {
29004a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert            builder.append(",").append(name).append("=").append(value);
29104a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert        }
29204a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert    }
29304a180b52fb4100a2f3747e795fb5d26e3207a4aBjorn Bringert
2943e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert}
295