summaryrefslogtreecommitdiff
path: root/src/org/fox/ttrss/OfflineActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/fox/ttrss/OfflineActivity.java')
-rw-r--r--src/org/fox/ttrss/OfflineActivity.java42
1 files changed, 41 insertions, 1 deletions
diff --git a/src/org/fox/ttrss/OfflineActivity.java b/src/org/fox/ttrss/OfflineActivity.java
index 51cdf911..58e84fbd 100644
--- a/src/org/fox/ttrss/OfflineActivity.java
+++ b/src/org/fox/ttrss/OfflineActivity.java
@@ -17,6 +17,7 @@ import android.provider.BaseColumns;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
+import android.view.ActionMode;
import android.view.Display;
import android.view.KeyEvent;
import android.view.Menu;
@@ -52,6 +53,36 @@ public class OfflineActivity extends FragmentActivity implements
return m_smallScreenMode;
}
+ private ActionMode m_headlinesActionMode;
+ private ActionMode.Callback m_headlinesActionModeCallback = new ActionMode.Callback() {
+
+ @Override
+ public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
+ return false;
+ }
+
+ @Override
+ public void onDestroyActionMode(ActionMode mode) {
+ deselectAllArticles();
+ 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) {
initDatabase();
@@ -622,7 +653,12 @@ public class OfflineActivity extends FragmentActivity implements
m_menu.setGroupVisible(R.id.menu_group_article, false);
if (numSelected != 0) {
- m_menu.setGroupVisible(R.id.menu_group_headlines_selection, true);
+ if (m_compatMode) {
+ m_menu.setGroupVisible(R.id.menu_group_headlines_selection, true);
+ } else {
+ if (m_headlinesActionMode == null)
+ m_headlinesActionMode = startActionMode(m_headlinesActionModeCallback);
+ }
} else if (m_selectedArticleId != 0) {
m_menu.setGroupVisible(R.id.menu_group_article, true);
} else if (m_activeFeedId != 0 /*|| m_activeCategory != null */) {
@@ -630,6 +666,10 @@ public class OfflineActivity extends FragmentActivity implements
} else {
m_menu.setGroupVisible(R.id.menu_group_feeds, true);
}
+
+ if (numSelected == 0 && m_headlinesActionMode != null) {
+ m_headlinesActionMode.finish();
+ }
}
}