package com.happy.life;
import java.util.ArrayList;
import com.limegroup.gnutella.util.StringUtils;
import com.util.DbAdapter;
import com.util.SearchCursorAdapter;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.text.TextUtils;
import android.text.method.KeyListener;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
public class SearchTab extends Activity{
private AutoCompleteTextView searchArtist;
private AutoCompleteTextView searchTitle;
private AutoCompleteTextView searchAlbum;
private Button searchButton;
//private AutoCompleteTextView autoCompleteTextViewArtist;
//private AutoCompleteTextView autoCompleteTextViewTitle;
//private ArrayList<String> searchHistory;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.search_tab);
Utils.addMixedAds(this);
searchArtist = setTextView(R.id.input_artist, DbAdapter.TYPE_ARTIST);
searchArtist.setOnKeyListener(new OnKeyListener(){
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if((event.getAction()==KeyEvent.ACTION_DOWN)&&
(keyCode==KeyEvent.KEYCODE_ENTER)){
searchTitle.requestFocus();
return true;
}
return false;
}
});
searchTitle = setTextView(R.id.input_title, DbAdapter.TYPE_TITLE);
searchTitle.setOnKeyListener(new OnKeyListener(){
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if((event.getAction()==KeyEvent.ACTION_DOWN)&&
(keyCode==KeyEvent.KEYCODE_ENTER)){
searchAlbum.requestFocus();
return true;
}
return false;
}
});
searchAlbum = setTextView(R.id.input_album, DbAdapter.TYPE_ALBUM);
searchAlbum.setOnKeyListener(new OnKeyListener(){
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if((event.getAction()==KeyEvent.ACTION_DOWN)&&
(keyCode==KeyEvent.KEYCODE_ENTER)){
actionListener();
return true;
}
return false;
}
});
searchButton = (Button) findViewById(R.id.search_button);
searchButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
actionListener();
}
});
}
private AutoCompleteTextView setTextView(int id, int type) {
Cursor c = com.util.Constants.dbAdapter.getHistoryByType(type);
AutoCompleteTextView view = (AutoCompleteTextView) findViewById(id);
if (c != null) {
view.setThreshold(1);
SearchCursorAdapter myCursorAdapterTitle = new SearchCursorAdapter(
this, c, type);
view.setAdapter(myCursorAdapterTitle);
}
return view;
}
private void actionListener(){
String artist = StringUtils.removeIllegalChars(searchArtist.getText().toString());
String title = StringUtils.removeIllegalChars(searchTitle.getText().toString());
String album = StringUtils.removeIllegalChars(searchAlbum.getText().toString());
boolean noArtist = TextUtils.isEmpty(artist);
boolean noTitle = TextUtils.isEmpty(title);
boolean noAlbum = TextUtils.isEmpty(album);
String key = "";
if (noArtist && noTitle && noAlbum) return;
// http://wiki.limewire.org/index.php?title=Metadata_Searches
// "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
// "<audio schema=\"http://www.limewire.com/schemas/audio.xsd\"" +
// " title=\"lady gaga\" artist=\"lady gaga\"/>";
StringBuilder b = new StringBuilder(256);
b.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?> <audio schema=\"http://www.limewire.com/schemas/audio.xsd\"");
if (!noArtist) {
com.util.Constants.dbAdapter.insertHistory(artist, DbAdapter.TYPE_ARTIST);
b.append("artist=\"");
b.append(artist);
b.append("\" ");
key += artist + " ";
}
if (!noTitle) {
com.util.Constants.dbAdapter.insertHistory(title, DbAdapter.TYPE_TITLE);
b.append("title=\"");
b.append(title);
b.append("\" ");
key += title + " ";
}
if (!noAlbum) {
com.util.Constants.dbAdapter.insertHistory(album, DbAdapter.TYPE_TITLE);
b.append("album=\"");
b.append(album);
b.append("\" ");
key += album;
}
b.append("/>");
MusicSearchResultActivity.handleMp3ListXMLIntent(this, key, b.toString());
}
}