diff options
author | Andrew Dolgov <[email protected]> | 2012-09-16 22:53:58 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2012-09-16 22:53:58 +0400 |
commit | 67752b2c573711cf0f7ccf8c6941d36cc8742ede (patch) | |
tree | 0c7dc219afacd3b5a273c2f09777dee3e8b22704 /src/org | |
parent | 721c98ce98f8220f1d43d2e38591ed8638287174 (diff) |
reimplement action mode for headlines selection
Diffstat (limited to 'src/org')
-rw-r--r-- | src/org/fox/ttrss/HeadlinesActivity.java | 8 | ||||
-rw-r--r-- | src/org/fox/ttrss/OnlineActivity.java | 57 |
2 files changed, 57 insertions, 8 deletions
diff --git a/src/org/fox/ttrss/HeadlinesActivity.java b/src/org/fox/ttrss/HeadlinesActivity.java index e98101cc..66456c3c 100644 --- a/src/org/fox/ttrss/HeadlinesActivity.java +++ b/src/org/fox/ttrss/HeadlinesActivity.java @@ -98,12 +98,6 @@ private final String TAG = this.getClass().getSimpleName(); }
@Override
- public boolean getUnreadArticlesOnly() {
- // TODO Auto-generated method stub
- return true;
- }
-
- @Override
protected void initMenu() {
super.initMenu();
@@ -138,8 +132,6 @@ private final String TAG = this.getClass().getSimpleName(); article.unread = false;
saveArticleUnread(article);
}
-
- //TinyApplication.getInstance().m_activeArticle = article;
if (open) {
FragmentTransaction ft = getSupportFragmentManager()
diff --git a/src/org/fox/ttrss/OnlineActivity.java b/src/org/fox/ttrss/OnlineActivity.java index 140b21e5..d47e11dc 100644 --- a/src/org/fox/ttrss/OnlineActivity.java +++ b/src/org/fox/ttrss/OnlineActivity.java @@ -26,6 +26,7 @@ import android.os.Bundle; import android.preference.PreferenceManager;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
+import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -46,6 +47,48 @@ public class OnlineActivity extends CommonActivity { protected boolean m_unreadOnly = true;
protected boolean m_unreadArticlesOnly = true;
+ private ActionMode m_headlinesActionMode;
+ private HeadlinesActionModeCallback m_headlinesActionModeCallback;
+
+ private class HeadlinesActionModeCallback implements ActionMode.Callback {
+
+ @Override
+ public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
+ return false;
+ }
+
+ @Override
+ public void onDestroyActionMode(ActionMode mode) {
+ HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES);
+
+ if (hf != null) {
+ ArticleList selected = hf.getSelectedArticles();
+ if (selected.size() > 0) {
+ selected.clear();
+ initMenu();
+ hf.notifyUpdated();
+ }
+ }
+
+ m_headlinesActionMode = null;
+ }
+
+ @Override
+ public boolean onCreateActionMode(ActionMode mode, Menu menu) {
+
+ MenuInflater inflater = getMenuInflater();
+ inflater.inflate(R.menu.headlines_action_menu, menu);
+
+ return true;
+ }
+
+ @Override
+ public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
+ onOptionsItemSelected(item);
+ return false;
+ }
+ };
+
@Override
public void onCreate(Bundle savedInstanceState) {
m_prefs = PreferenceManager
@@ -78,6 +121,10 @@ public class OnlineActivity extends CommonActivity { m_unreadArticlesOnly = savedInstanceState.getBoolean("unreadArticlesOnly");
}
+ if (!isCompatMode()) {
+ m_headlinesActionModeCallback = new HeadlinesActionModeCallback();
+ }
+
Log.d(TAG, "m_sessionId=" + m_sessionId);
Log.d(TAG, "m_apiLevel=" + m_apiLevel);
@@ -774,6 +821,16 @@ public class OnlineActivity extends CommonActivity { }
if (!isCompatMode()) {
+ HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES);
+
+ if (hf != null) {
+ if (hf.getSelectedArticles().size() > 0 && m_headlinesActionMode == null) {
+ m_headlinesActionMode = startActionMode(m_headlinesActionModeCallback);
+ } else if (hf.getSelectedArticles().size() == 0 && m_headlinesActionMode != null) {
+ m_headlinesActionMode.finish();
+ }
+ }
+
SearchView searchView = (SearchView) search.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
private String query = "";
|