1d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert/* 2d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * Copyright (C) 2010 The Android Open Source Project 3d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * 4d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License"); 5d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * you may not use this file except in compliance with the License. 6d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * You may obtain a copy of the License at 7d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * 8d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * http://www.apache.org/licenses/LICENSE-2.0 9d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * 10d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * Unless required by applicable law or agreed to in writing, software 11d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS, 12d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * See the License for the specific language governing permissions and 14d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * limitations under the License. 15d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert */ 16d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringertpackage com.android.browser.search; 17d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert 18d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringertimport android.content.Context; 19d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringertimport android.database.Cursor; 20d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringertimport android.os.Bundle; 21d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert 22d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert/** 23d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * Interface for search engines. 24d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert */ 25d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringertpublic interface SearchEngine { 26d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert 27430057dad085f3c3dbc386f127b1f5a10a9851daLeon Scroggins III // Used if the search engine is Google 28430057dad085f3c3dbc386f127b1f5a10a9851daLeon Scroggins III static final String GOOGLE = "google"; 29430057dad085f3c3dbc386f127b1f5a10a9851daLeon Scroggins III 30d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert /** 31d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * Gets the unique name of this search engine. 32d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert */ 33d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert public String getName(); 34d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert 35d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert /** 36d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * Gets the human-readable name of this search engine. 37d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert */ 38d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert public CharSequence getLabel(); 39d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert 40d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert /** 41d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * Starts a search. 42d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert */ 43d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert public void startSearch(Context context, String query, Bundle appData, String extraData); 44d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert 45d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert /** 46d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * Gets search suggestions. 47d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert */ 48d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert public Cursor getSuggestions(Context context, String query); 49d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert 50d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert /** 51d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * Checks whether this search engine supports search suggestions. 52d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert */ 53d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert public boolean supportsSuggestions(); 54d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert 55d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert /** 56d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert * Closes this search engine. 57d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert */ 58d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert public void close(); 59d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert 60430057dad085f3c3dbc386f127b1f5a10a9851daLeon Scroggins III /** 615119edd5744cfc6d3a8ed480a8853586c737bed4Narayan Kamath * Checks whether this search engine should be sent zero char query. 625119edd5744cfc6d3a8ed480a8853586c737bed4Narayan Kamath */ 635119edd5744cfc6d3a8ed480a8853586c737bed4Narayan Kamath public boolean wantsEmptyQuery(); 64d26706538834e0ed58bf28f08d9a2885c0e7efcbBjorn Bringert} 65