| /* |
| * Copyright (C) 2011 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 android.support.v4.widget; |
| |
| import android.app.SearchManager; |
| import android.content.ComponentName; |
| import android.content.Context; |
| import android.view.View; |
| import android.widget.SearchView; |
| import android.widget.SearchView.OnCloseListener; |
| import android.widget.SearchView.OnQueryTextListener; |
| |
| /** |
| * Implementation of SearchView compatibility that can call Honeycomb APIs. |
| */ |
| class SearchViewCompatHoneycomb { |
| |
| interface OnQueryTextListenerCompatBridge { |
| public boolean onQueryTextSubmit(String query); |
| public boolean onQueryTextChange(String newText); |
| } |
| |
| interface OnCloseListenerCompatBridge { |
| public boolean onClose(); |
| } |
| |
| public static View newSearchView(Context context) { |
| return new SearchView(context); |
| } |
| |
| public static void setSearchableInfo(View searchView, ComponentName searchableComponent) { |
| SearchView sv = ((SearchView) searchView); |
| SearchManager searchManager = (SearchManager) |
| sv.getContext().getSystemService(Context.SEARCH_SERVICE); |
| sv.setSearchableInfo(searchManager.getSearchableInfo(searchableComponent)); |
| } |
| |
| public static Object newOnQueryTextListener(final OnQueryTextListenerCompatBridge listener) { |
| return new OnQueryTextListener() { |
| @Override |
| public boolean onQueryTextSubmit(String query) { |
| return listener.onQueryTextSubmit(query); |
| } |
| |
| @Override |
| public boolean onQueryTextChange(String newText) { |
| return listener.onQueryTextChange(newText); |
| } |
| }; |
| } |
| |
| public static void setOnQueryTextListener(Object searchView, Object listener) { |
| ((SearchView) searchView).setOnQueryTextListener((OnQueryTextListener) listener); |
| } |
| |
| public static Object newOnCloseListener(final OnCloseListenerCompatBridge listener) { |
| return new OnCloseListener() { |
| @Override |
| public boolean onClose() { |
| return listener.onClose(); |
| } |
| }; |
| } |
| |
| public static void setOnCloseListener(Object searchView, Object listener) { |
| ((SearchView) searchView).setOnCloseListener((OnCloseListener) listener); |
| } |
| |
| public static CharSequence getQuery(View searchView) { |
| return ((SearchView) searchView).getQuery(); |
| } |
| |
| public static void setQuery(View searchView, CharSequence query, boolean submit) { |
| ((SearchView) searchView).setQuery(query, submit); |
| } |
| |
| public static void setQueryHint(View searchView, CharSequence hint) { |
| ((SearchView) searchView).setQueryHint(hint); |
| } |
| |
| public static void setIconified(View searchView, boolean iconify) { |
| ((SearchView) searchView).setIconified(iconify); |
| } |
| |
| public static boolean isIconified(View searchView) { |
| return ((SearchView) searchView).isIconified(); |
| } |
| |
| public static void setSubmitButtonEnabled(View searchView, boolean enabled) { |
| ((SearchView) searchView).setSubmitButtonEnabled(enabled); |
| } |
| |
| public static boolean isSubmitButtonEnabled(View searchView) { |
| return ((SearchView) searchView).isSubmitButtonEnabled(); |
| } |
| |
| public static void setQueryRefinementEnabled(View searchView, boolean enable) { |
| ((SearchView) searchView).setQueryRefinementEnabled(enable); |
| } |
| |
| public static boolean isQueryRefinementEnabled(View searchView) { |
| return ((SearchView) searchView).isQueryRefinementEnabled(); |
| } |
| |
| public static void setMaxWidth(View searchView, int maxpixels) { |
| ((SearchView) searchView).setMaxWidth(maxpixels); |
| } |
| } |