193bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert/* 293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Copyright (C) 2010 The Android Open Source Project 393bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * 493bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License"); 593bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * you may not use this file except in compliance with the License. 693bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * You may obtain a copy of the License at 793bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * 893bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * http://www.apache.org/licenses/LICENSE-2.0 993bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * 1093bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Unless required by applicable law or agreed to in writing, software 1193bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS, 1293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1393bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * See the License for the specific language governing permissions and 1493bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * limitations under the License. 1593bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 1693bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringertpackage com.android.quicksearchbox; 1793bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 1838eb02e676db9e5a633e3c88a90beb8a477b1ca1Bjorn Bringertimport android.content.ComponentName; 1938eb02e676db9e5a633e3c88a90beb8a477b1ca1Bjorn Bringert 2093bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert/** 2193bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Interface for individual suggestions. 2293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 2393bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringertpublic interface Suggestion { 2493bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 2593bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 2693bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Gets the source that produced the current suggestion. 2793bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 2893bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert Source getSuggestionSource(); 2993bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 3093bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 3193bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Gets the shortcut ID of the current suggestion. 3293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 3393bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert String getShortcutId(); 3493bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 3593bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 3693bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Whether to show a spinner while refreshing this shortcut. 3793bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 3893bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert boolean isSpinnerWhileRefreshing(); 3993bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 4093bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 4193bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Gets the format of the text returned by {@link #getSuggestionText1()} 4293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * and {@link #getSuggestionText2()}. 4393bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * 4493bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * @return {@code null} or "html" 4593bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 4693bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert String getSuggestionFormat(); 4793bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 4893bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 4993bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Gets the first text line for the current suggestion. 5093bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 5193bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert String getSuggestionText1(); 5293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 5393bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 5493bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Gets the second text line for the current suggestion. 5593bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 5693bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert String getSuggestionText2(); 5793bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 5893bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 5993bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Gets the second text line URL for the current suggestion. 6093bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 6193bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert String getSuggestionText2Url(); 6293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 6393bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 6493bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Gets the left-hand-side icon for the current suggestion. 6593bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * 6693bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * @return A string that can be passed to {@link Source#getIcon(String)}. 6793bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 6893bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert String getSuggestionIcon1(); 6993bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 7093bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 7193bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Gets the right-hand-side icon for the current suggestion. 7293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * 7393bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * @return A string that can be passed to {@link Source#getIcon(String)}. 7493bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 7593bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert String getSuggestionIcon2(); 7693bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 7793bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 7893bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Gets the intent action for the current suggestion. 7993bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 8093bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert String getSuggestionIntentAction(); 8193bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 8293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 8338eb02e676db9e5a633e3c88a90beb8a477b1ca1Bjorn Bringert * Gets the name of the activity that the intent for the current suggestion will be sent to. 8438eb02e676db9e5a633e3c88a90beb8a477b1ca1Bjorn Bringert */ 8538eb02e676db9e5a633e3c88a90beb8a477b1ca1Bjorn Bringert ComponentName getSuggestionIntentComponent(); 8638eb02e676db9e5a633e3c88a90beb8a477b1ca1Bjorn Bringert 8738eb02e676db9e5a633e3c88a90beb8a477b1ca1Bjorn Bringert /** 8893bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Gets the extra data associated with this suggestion's intent. 8993bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 9093bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert String getSuggestionIntentExtraData(); 9193bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 9293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 9393bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Gets the data associated with this suggestion's intent. 9493bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 9593bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert String getSuggestionIntentDataString(); 9693bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 9793bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 9893bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Gets the query associated with this suggestion's intent. 9993bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 10093bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert String getSuggestionQuery(); 10193bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 10293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 10393bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Gets the suggestion log type for the current suggestion. This is logged together 10493bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * with the value returned from {@link Source#getName()}. 10593bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * The value is source-specific. Most sources return {@code null}. 10693bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 10793bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert String getSuggestionLogType(); 10893bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 10993bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 11093bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Checks if this suggestion is a shortcut. 11193bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 11293bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert boolean isSuggestionShortcut(); 11393bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 11493bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert /** 11593bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert * Checks if this is a web search suggestion. 11693bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert */ 11793bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert boolean isWebSearchSuggestion(); 11893bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert 1195229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwood /** 120fb8ce18922dae59db424fce906b5c113797fe81eBjorn Bringert * Checks whether this suggestion comes from the user's search history. 121fb8ce18922dae59db424fce906b5c113797fe81eBjorn Bringert */ 122fb8ce18922dae59db424fce906b5c113797fe81eBjorn Bringert boolean isHistorySuggestion(); 123fb8ce18922dae59db424fce906b5c113797fe81eBjorn Bringert 124fb8ce18922dae59db424fce906b5c113797fe81eBjorn Bringert /** 1255229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwood * Returns any extras associated with this suggestion, or {@code null} if there are none. 1265229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwood */ 1275229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwood SuggestionExtras getExtras(); 1285229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwood 12993bd2e70b8b08da1ec37fd0e990dac05551d2e90Bjorn Bringert} 130