diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2012-07-24 14:37:34 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2012-07-24 14:37:34 +0200 |
commit | 8243d0dde6997751def222c8263a93a2ba990cce (patch) | |
tree | 1433bc11ff8fb68b5faee3f5f4966a573dcc06df /src | |
parent | dc02bff7c60a15f5ca75a43ac40708ddc2ed6c05 (diff) | |
download | AntennaPod-8243d0dde6997751def222c8263a93a2ba990cce.zip |
implemented search button
Diffstat (limited to 'src')
-rw-r--r-- | src/de/danoeh/antennapod/activity/MainActivity.java | 3 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/activity/SearchActivity.java | 64 |
2 files changed, 66 insertions, 1 deletions
diff --git a/src/de/danoeh/antennapod/activity/MainActivity.java b/src/de/danoeh/antennapod/activity/MainActivity.java index 3423ddc21..ad325d0d2 100644 --- a/src/de/danoeh/antennapod/activity/MainActivity.java +++ b/src/de/danoeh/antennapod/activity/MainActivity.java @@ -108,6 +108,9 @@ public class MainActivity extends SherlockFragmentActivity { case R.id.opml_import: startActivity(new Intent(this, OpmlImportActivity.class)); return true; + case R.id.search_item: + onSearchRequested(); + return true; default: return super.onOptionsItemSelected(item); } diff --git a/src/de/danoeh/antennapod/activity/SearchActivity.java b/src/de/danoeh/antennapod/activity/SearchActivity.java index 9cc3b1717..8f05e533f 100644 --- a/src/de/danoeh/antennapod/activity/SearchActivity.java +++ b/src/de/danoeh/antennapod/activity/SearchActivity.java @@ -8,14 +8,23 @@ import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; +import android.view.View; +import android.widget.ListView; +import android.widget.TextView; import com.actionbarsherlock.app.SherlockListActivity; +import com.actionbarsherlock.view.Menu; +import com.actionbarsherlock.view.MenuItem; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.R; import de.danoeh.antennapod.adapter.SearchlistAdapter; -import de.danoeh.antennapod.feed.FeedComponent; +import de.danoeh.antennapod.feed.Feed; +import de.danoeh.antennapod.feed.FeedItem; import de.danoeh.antennapod.feed.FeedSearcher; import de.danoeh.antennapod.feed.SearchResult; +import de.danoeh.antennapod.fragment.FeedlistFragment; +import de.danoeh.antennapod.fragment.ItemlistFragment; public class SearchActivity extends SherlockListActivity { private static final String TAG = "SearchActivity"; @@ -23,22 +32,72 @@ public class SearchActivity extends SherlockListActivity { private SearchlistAdapter searchAdapter; private ArrayList<SearchResult> content; + private TextView txtvStatus; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + setContentView(R.layout.searchlist); + txtvStatus = (TextView) findViewById(android.R.id.empty); if (Intent.ACTION_SEARCH.equals(getIntent().getAction())) { if (AppConfig.DEBUG) Log.d(TAG, "Starting search"); String query = getIntent().getStringExtra(SearchManager.QUERY); + getSupportActionBar().setSubtitle( + getString(R.string.search_term_label) + query); startSearch(query); } } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + startActivity(new Intent(this, MainActivity.class)); + return true; + default: + return false; + } + } + + @Override + protected void onListItemClick(ListView l, View v, int position, long id) { + super.onListItemClick(l, v, position, id); + SearchResult selection = searchAdapter.getItem(position); + if (selection.getComponent().getClass() == Feed.class) { + Feed feed = (Feed) selection.getComponent(); + Intent launchIntent = new Intent(this, FeedItemlistActivity.class); + launchIntent.putExtra(FeedlistFragment.EXTRA_SELECTED_FEED, + feed.getId()); + startActivity(launchIntent); + + } else if (selection.getComponent().getClass() == FeedItem.class) { + FeedItem item = (FeedItem) selection.getComponent(); + Intent launchIntent = new Intent(this, ItemviewActivity.class); + launchIntent.putExtra(FeedlistFragment.EXTRA_SELECTED_FEED, item + .getFeed().getId()); + launchIntent.putExtra(ItemlistFragment.EXTRA_SELECTED_FEEDITEM, + item.getId()); + startActivity(launchIntent); + } + } + @SuppressLint({ "NewApi", "NewApi" }) private void startSearch(String query) { AsyncTask<String, Void, ArrayList<SearchResult>> executor = new AsyncTask<String, Void, ArrayList<SearchResult>>() { @Override + protected void onPreExecute() { + txtvStatus.setText(R.string.search_status_searching); + } + + @Override protected ArrayList<SearchResult> doInBackground(String... params) { if (AppConfig.DEBUG) Log.d(TAG, "Starting background work"); @@ -57,6 +116,9 @@ public class SearchActivity extends SherlockListActivity { content); getListView().setAdapter(searchAdapter); searchAdapter.notifyDataSetChanged(); + if (content.isEmpty()) { + txtvStatus.setText(R.string.search_status_no_results); + } } |