diff options
author | Tom Willemsen | 2012-08-16 21:45:49 +0200 |
---|---|---|
committer | Tom Willemsen | 2012-08-16 21:45:49 +0200 |
commit | b2a1b4aec0e1e3d5fb96401fe41bc27547817748 (patch) | |
tree | 6c32758612321fc900c306a9baa365e61bda8196 /src | |
parent | f30b4fcd3a525d2fa3c2d85fb11e8e7aa3a6a031 (diff) | |
download | dvdroid-b2a1b4aec0e1e3d5fb96401fe41bc27547817748.tar.gz dvdroid-b2a1b4aec0e1e3d5fb96401fe41bc27547817748.zip |
* AndroidManifest.xml: Register `DVDroidActivity' as searchable.
* res/drawable-hdpi/menu_search.png:
* res/drawable-mdpi/menu_search.png: New icons.
* res/menu/main_activity.xml: Add a search icon to the main activity's
action menu.
* res/values/strings.xml: Add strings "search_hint" and "menu_search".
* res/xml/searchable.xml: New configuration file.
* src/ryuslash/org/dvdroid/DVDDataSource.java (getQuery): New
function.
* src/ryuslash/org/dvdroid/DVDroidActivity.java (getData): New
overload, calls `getQuery' to search for something instead of
everything.
(onCreate): If a search has been started, search, don't just show
everything.
(onCreateOptionsMenu): Instantiate the `SearchView' in order to use
it.
Diffstat (limited to 'src')
-rw-r--r-- | src/ryuslash/org/dvdroid/DVDDataSource.java | 9 | ||||
-rw-r--r-- | src/ryuslash/org/dvdroid/DVDroidActivity.java | 22 |
2 files changed, 30 insertions, 1 deletions
diff --git a/src/ryuslash/org/dvdroid/DVDDataSource.java b/src/ryuslash/org/dvdroid/DVDDataSource.java index e10fb24..7bfa92a 100644 --- a/src/ryuslash/org/dvdroid/DVDDataSource.java +++ b/src/ryuslash/org/dvdroid/DVDDataSource.java @@ -142,6 +142,15 @@ public class DVDDataSource return getListFromCursor(cursor); } + public List<DVD> getQuery(String query) + { + String params[] = { "%" + query + "%" }; + Cursor cursor = database.query(SQLiteHelper.TABLE_DVD, + allColumns, "title LIKE ?", + params, null, null, "title"); + return getListFromCursor(cursor); + } + private DVD cursorToDVD(Cursor cursor) { DVD dvd = new DVD(); diff --git a/src/ryuslash/org/dvdroid/DVDroidActivity.java b/src/ryuslash/org/dvdroid/DVDroidActivity.java index 07fe1fb..ca65f13 100644 --- a/src/ryuslash/org/dvdroid/DVDroidActivity.java +++ b/src/ryuslash/org/dvdroid/DVDroidActivity.java @@ -3,6 +3,7 @@ package ryuslash.org.dvdroid; import java.util.List; import android.app.ListActivity; +import android.app.SearchManager; import android.content.Context; import android.content.Intent; import android.os.Bundle; @@ -14,6 +15,7 @@ import android.view.View; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ListView; +import android.widget.SearchView; public class DVDroidActivity extends ListActivity implements ActionMode.Callback @@ -28,6 +30,11 @@ public class DVDroidActivity extends ListActivity return datasource.getCollection(); } + private List<DVD> getData(String query) + { + return datasource.getQuery(query); + } + @Override protected void onActivityResult(int requestCode, int resultCode, @@ -80,7 +87,14 @@ public class DVDroidActivity extends ListActivity datasource = new DVDDataSource(this); datasource.open(); - List<DVD> values = getData(); + Intent intent = getIntent(); + List<DVD> values; + + if (Intent.ACTION_SEARCH.equals(intent.getAction())) { + values = getData(intent.getStringExtra(SearchManager.QUERY)); + } else { + values = getData(); + } ArrayAdapter<DVD> adapter = new ArrayAdapter<DVD>(this, @@ -104,6 +118,12 @@ public class DVDroidActivity extends ListActivity { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_activity, menu); + + // Get the SearchView and set the searchable configuration. + SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); + SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); + searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); + return true; } |