summaryrefslogtreecommitdiff
path: root/src/org/fox/ttrss/OfflineActivity.java
diff options
context:
space:
mode:
authorAndrew Dolgov <fox@fakecake.org>2011-12-09 21:49:12 +0300
committerAndrew Dolgov <fox@fakecake.org>2011-12-09 21:49:12 +0300
commite0012da1e9cefa9d956d8e5697ed1bfda06d463e (patch)
treec8fccb6becc347efa46baaa08ad41c0072086f02 /src/org/fox/ttrss/OfflineActivity.java
parent9951991e5600226695cb880edc39031ef0546c44 (diff)
implement contextual selection bar for HC articles
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();
+ }
}
}