diff options
| author | Andrew Dolgov <fox@madoka.volgo-balt.ru> | 2012-01-19 13:05:48 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@madoka.volgo-balt.ru> | 2012-01-19 13:05:48 +0300 |
| commit | 60128ffe2f02f1850c5fb03aa98f7a05b9e832f8 (patch) | |
| tree | c569f0d905ee7723c62bdb328f6921d12bb5318c /src/org/fox/ttrss/MainActivity.java | |
| parent | 86245837643d3f9fb2cda3f6b73f496f42774048 (diff) | |
implement actionbar search for HC/ICS devices
Diffstat (limited to 'src/org/fox/ttrss/MainActivity.java')
| -rw-r--r-- | src/org/fox/ttrss/MainActivity.java | 56 |
1 files changed, 55 insertions, 1 deletions
diff --git a/src/org/fox/ttrss/MainActivity.java b/src/org/fox/ttrss/MainActivity.java index 5fc579af..40c0a331 100644 --- a/src/org/fox/ttrss/MainActivity.java +++ b/src/org/fox/ttrss/MainActivity.java @@ -31,6 +31,7 @@ import android.preference.PreferenceManager; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentTransaction; +import android.support.v4.widget.SearchViewCompat; import android.util.Log; import android.view.ActionMode; import android.view.Display; @@ -43,6 +44,7 @@ import android.view.ViewGroup; import android.view.animation.AnimationUtils; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.LinearLayout; +import android.widget.SearchView; import android.widget.TextView; import android.widget.Toast; @@ -1201,8 +1203,52 @@ public class MainActivity extends FragmentActivity implements OnlineServices { } else if (m_selectedArticle != null) { m_menu.setGroupVisible(R.id.menu_group_article, true); - } else if (m_activeFeed != null || m_activeCategory != null) { + } else if (m_activeFeed != null) { m_menu.setGroupVisible(R.id.menu_group_headlines, true); + + MenuItem search = m_menu.findItem(R.id.search); + + if (search != null && !m_compatMode) { + SearchView searchView = (SearchView) search.getActionView(); + searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { + private String query = ""; + + @Override + public boolean onQueryTextSubmit(String query) { + Log.d(TAG, "Search/onQueryTextSubmit"); + + HeadlinesFragment frag = (HeadlinesFragment) getSupportFragmentManager() + .findFragmentById(R.id.headlines_fragment); + + if (frag != null) { + frag.setSearchQuery(query); + this.query = query; + } + + return false; + } + + @Override + public boolean onQueryTextChange(String newText) { + // TODO Auto-generated method stub + + Log.d(TAG, "Search/onQueryTextChange: " + newText); + + if (newText.equals("") && !newText.equals(this.query)) { + HeadlinesFragment frag = (HeadlinesFragment) getSupportFragmentManager() + .findFragmentById(R.id.headlines_fragment); + + if (frag != null) { + frag.setSearchQuery(newText); + this.query = newText; + } + } + + return false; + } + }); + } + } else { m_menu.setGroupVisible(R.id.menu_group_feeds, true); } @@ -1422,6 +1468,14 @@ public class MainActivity extends FragmentActivity implements OnlineServices { } if (!append) { + + MenuItem search = m_menu.findItem(R.id.search); + + if (search != null && !m_compatMode) { + SearchView sv = (SearchView) search.getActionView(); + sv.setQuery("", false); + } + HeadlinesFragment hf = new HeadlinesFragment(); FragmentTransaction ft = getSupportFragmentManager() |