/*
 * The MIT License (MIT)
 * Copyright (c) 2014 longkai
 * The software shall be used for good, not evil.
 */
package org.catnut.support;

import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.widget.ImageView;
import android.widget.SearchView;
import android.widget.TextView;
import org.catnut.R;

/**
 * 修改一下默认的Search view,少一些违和感,并且可以知道search view是否collapse
 *
 * @author longkai
 */
public class VividSearchView extends SearchView {

	private boolean searching;

	public static VividSearchView getSearchView(Context context) {
		VividSearchView searchView = new VividSearchView(context);
		searchView.setIconifiedByDefault(false);
		searchView.setQueryHint(context.getString(R.string.search_hint));
		searchView.setIconified(true);
		int searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_plate", null, null);
		View searchPlate = searchView.findViewById(searchPlateId);
		if (searchPlate != null) {
			// 修改搜索文字的颜色
			int searchTextId = searchPlate.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
			TextView searchText = (TextView) searchPlate.findViewById(searchTextId);
			if (searchText != null) {
				searchText.setTextColor(Color.WHITE);
				searchText.setHintTextColor(Color.WHITE);
			}
		}
		// 修改搜索hint图标,这里有bug,所以不得已搜索的空间又小了
		int searchButtonId = searchView.getContext().getResources().getIdentifier("android:id/search_mag_icon", null, null);
		ImageView searchButton = (ImageView) searchView.findViewById(searchButtonId);
		if (searchButton != null) {
			searchButton.setImageResource(R.drawable.ic_search_hint);
		}
		// 修改清除图标
		int clearId = searchView.getContext().getResources().getIdentifier("android:id/search_close_btn", null, null);
		ImageView closeButton = (ImageView) searchView.findViewById(clearId);
		if (closeButton != null) {
			closeButton.setImageResource(R.drawable.ic_clear);
		}
		return searchView;
	}

	public VividSearchView(Context context) {
		super(context);
	}

	@Override
	public void onActionViewExpanded() {
		super.onActionViewExpanded();
		searching = true;
	}

	@Override
	public void onActionViewCollapsed() {
		super.onActionViewCollapsed();
		searching = false;
	}

	public boolean isSearching() {
		return searching;
	}
}