/*
* 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);
}
}
|