/* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.quicksearchbox import android.content.ComponentName /** Interface for individual suggestions. */ interface Suggestion { /** Gets the source that produced the current suggestion. */ val suggestionSource: com.android.quicksearchbox.Source? /** Gets the shortcut ID of the current suggestion. */ val shortcutId: String? /** Whether to show a spinner while refreshing this shortcut. */ val isSpinnerWhileRefreshing: Boolean /** * Gets the format of the text returned by [.getSuggestionText1] and [.getSuggestionText2]. * * @return `null` or "html" */ val suggestionFormat: String? /** Gets the first text line for the current suggestion. */ val suggestionText1: String? /** Gets the second text line for the current suggestion. */ val suggestionText2: String? /** Gets the second text line URL for the current suggestion. */ val suggestionText2Url: String? /** * Gets the left-hand-side icon for the current suggestion. * * @return A string that can be passed to [Source.getIcon]. */ val suggestionIcon1: String? /** * Gets the right-hand-side icon for the current suggestion. * * @return A string that can be passed to [Source.getIcon]. */ val suggestionIcon2: String? /** Gets the intent action for the current suggestion. */ val suggestionIntentAction: String? /** Gets the name of the activity that the intent for the current suggestion will be sent to. */ val suggestionIntentComponent: ComponentName? /** Gets the extra data associated with this suggestion's intent. */ val suggestionIntentExtraData: String? /** Gets the data associated with this suggestion's intent. */ val suggestionIntentDataString: String? /** Gets the query associated with this suggestion's intent. */ val suggestionQuery: String? /** * Gets the suggestion log type for the current suggestion. This is logged together with the value * returned from [Source.getName]. The value is source-specific. Most sources return `null`. */ val suggestionLogType: String? /** Checks if this suggestion is a shortcut. */ val isSuggestionShortcut: Boolean /** Checks if this is a web search suggestion. */ val isWebSearchSuggestion: Boolean /** Checks whether this suggestion comes from the user's search history. */ val isHistorySuggestion: Boolean /** Returns any extras associated with this suggestion, or `null` if there are none. */ val extras: com.android.quicksearchbox.SuggestionExtras? }