package com.cinla.ringtone;
import com.latest.ringtone.R;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Handler;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
public class SearchBar {
private Activity mActivity;
private AutoCompleteTextView mQuery;
private Button mGo;
LinearLayout mSearchBarLayout;
private Handler mHandler = new Handler();
private static final String CODING = "utf-8";
public SearchBar(Activity activity) {
mActivity = activity;
mQuery = (AutoCompleteTextView)activity.findViewById(R.id.query_key);
mGo = (Button)activity.findViewById(R.id.go);
mSearchBarLayout = (LinearLayout) activity.findViewById(R.id.search_bar_view);
mQuery.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP) {
doSearch();
return true;
}
return false;
}
});
mQuery.setThreshold(1);
DbAdapter dbAdapter = new DbAdapter(mActivity);
try {
SearchAdapter myCursorAdapterSearch = new SearchAdapter(mActivity, dbAdapter.getHistoryByType(DbAdapter.TYPE_SEARCH), DbAdapter.TYPE_SEARCH);
mQuery.setAdapter(myCursorAdapterSearch);
} catch (Exception e) {
} finally {
dbAdapter.close();
}
mGo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
doSearch();
}
});
}
public void setHint() {
new SetSearchBarHintTask().execute(null);
}
public void setQueryKeyWord(String keyWord) {
mQuery.setText(keyWord);
}
public String getQuery() {
if (mQuery != null) {
return mQuery.getText().toString();
}
return null;
}
public void hide() {
mSearchBarLayout.setVisibility(View.GONE);
}
private void doSearch() {
String query = mQuery.getText().toString().trim();
if (query.length() == 0) {
Toast.makeText(mActivity, R.string.input_key, Toast.LENGTH_SHORT).show();
return;
}
DbAdapter db = new DbAdapter(mActivity);
db.intsertHistory(query, DbAdapter.TYPE_SEARCH);
db.close();
if (!TextUtils.isEmpty(query)) {
SearchListActivity.startQeuryByKey(mActivity, query);
}
}
private class SetSearchBarHintTask extends AsyncTask<Void, Void, Long> {
@Override
protected Long doInBackground(Void... params) {
String response;
Long num = null;
try {
response = NetUtils.fetchHtmlPage(Constant.BASE_URL+Constant.COUNT_URL, CODING, Constant.ONE_WEEK);
num = Long.parseLong(response);
Utils.D("*************************response of get all: "+response);
} catch (Exception e) {
Utils.D("*************************Exception in get all. ");
Utils.D(e.getMessage());
return null;
}
if (response==null || response.length()==0) {
return null;
}
return num;
}
@Override
protected void onPostExecute(final Long result) {
super.onPostExecute(result);
if (result == null) {
return;
}
mHandler.post(new Runnable() {
@Override
public void run() {
if (mQuery.getText().toString().trim().length()==0) {
mQuery.setHint(mActivity.getString(R.string.total_ringtones1)+" "+result.toString()+" "+mActivity.getString(R.string.total_ringtones2));
}
}
});
}
}
}