diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index af831655..686e8c08 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -15,20 +15,26 @@
-
+
-
+
+
-
diff --git a/res/layout/song_selector.xml b/res/layout/song_selector.xml
index b06dd478..10237dd4 100644
--- a/res/layout/song_selector.xml
+++ b/res/layout/song_selector.xml
@@ -11,49 +11,8 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:fastScrollEnabled="true" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_height="wrap_content" />
\ No newline at end of file
diff --git a/src/org/kreed/vanilla/SongSelector.java b/src/org/kreed/vanilla/SongSelector.java
index 86146e65..9713d3e5 100644
--- a/src/org/kreed/vanilla/SongSelector.java
+++ b/src/org/kreed/vanilla/SongSelector.java
@@ -22,26 +22,19 @@ import org.kreed.vanilla.R;
import android.app.Activity;
import android.content.Intent;
-import android.content.res.Configuration;
import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
-import android.widget.Button;
-import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
-import android.widget.AdapterView.OnItemClickListener;
-public class SongSelector extends Activity implements View.OnClickListener, OnItemClickListener {
- private ListView mListView;
+public class SongSelector extends Activity implements AdapterView.OnItemClickListener, TextWatcher {
private SongAdapter mAdapter;
-
- private LinearLayout mFilterLayout;
- private TextView mFilterText;
- private Button mBackspaceButton;
- private Button mCloseButton;
- private View mNumpad;
- private Button[] mButtons;
+ private ListView mListView;
+ private TextView mTextView;
@Override
public void onCreate(Bundle icicle)
@@ -49,78 +42,25 @@ public class SongSelector extends Activity implements View.OnClickListener, OnIt
super.onCreate(icicle);
setContentView(R.layout.song_selector);
- mListView = (ListView)findViewById(R.id.song_list);
+
mAdapter = new SongAdapter(this);
+
+ mListView = (ListView)findViewById(R.id.song_list);
mListView.setAdapter(mAdapter);
- mListView.setTextFilterEnabled(true);
mListView.setOnItemClickListener(this);
-
- mFilterLayout = (LinearLayout)findViewById(R.id.filter_layout);
- mFilterText = (TextView)findViewById(R.id.filter_text);
- mBackspaceButton = (Button)findViewById(R.id.backspace);
- mBackspaceButton.setOnClickListener(this);
- mCloseButton = (Button)findViewById(R.id.close);
- mCloseButton.setOnClickListener(this);
-
- mNumpad = findViewById(R.id.numpad);
-
- Configuration config = getResources().getConfiguration();
- boolean hasKeyboard = config.keyboardHidden == Configuration.KEYBOARDHIDDEN_NO && config.keyboard == Configuration.KEYBOARD_QWERTY;
- mNumpad.setVisibility(hasKeyboard ? View.GONE : View.VISIBLE);
- mButtons = new Button[] {
- (Button)findViewById(R.id.Button1),
- (Button)findViewById(R.id.Button2),
- (Button)findViewById(R.id.Button3),
- (Button)findViewById(R.id.Button4),
- (Button)findViewById(R.id.Button5),
- (Button)findViewById(R.id.Button6),
- (Button)findViewById(R.id.Button7),
- (Button)findViewById(R.id.Button8),
- (Button)findViewById(R.id.Button9)
- };
-
- for (Button button : mButtons)
- button.setOnClickListener(this);
+ mTextView = (TextView)findViewById(R.id.filter_text);
+ mTextView.addTextChangedListener(this);
}
@Override
- public boolean onSearchRequested()
+ public boolean onKeyDown(int keyCode, KeyEvent event)
{
- mNumpad.setVisibility(mNumpad.getVisibility() == View.GONE ? View.VISIBLE : View.GONE);
- return false;
- }
-
- public void onClick(View view)
- {
- String defaultText = getResources().getString(R.string.filter) + ' ';
+ if (super.onKeyDown(keyCode, event))
+ return true;
- int visible = View.VISIBLE;
- String text = mFilterText.getText().toString();
- if (text.length() == 0)
- text = defaultText;
-
- if (view == mCloseButton) {
- visible = View.GONE;
- text = null;
- } else if (view == mBackspaceButton) {
- if (text.length() > defaultText.length())
- text = text.substring(0, text.length() - 1);
- } else {
- int i = -1;
- while (++i != mButtons.length)
- if (mButtons[i] == view)
- break;
-
- text += i + 1;
- }
-
- mFilterText.setText(text);
- mFilterLayout.setVisibility(visible);
- mListView.setTextFilterEnabled(visible == View.VISIBLE);
-
- String filterText = text == null || text.length() <= defaultText.length() ? null : text.substring(defaultText.length());
- mAdapter.getFilter().filter(filterText);
+ mTextView.requestFocus();
+ return mTextView.onKeyDown(keyCode, event);
}
public void onItemClick(AdapterView> list, View view, int pos, long id)
@@ -129,4 +69,17 @@ public class SongSelector extends Activity implements View.OnClickListener, OnIt
intent.putExtra("songId", (int)id);
startService(intent);
}
+
+ public void afterTextChanged(Editable editable)
+ {
+ }
+
+ public void beforeTextChanged(CharSequence s, int start, int count, int after)
+ {
+ }
+
+ public void onTextChanged(CharSequence s, int start, int before, int count)
+ {
+ mAdapter.getFilter().filter(s);
+ }
}
\ No newline at end of file