diff --git a/org.fox.ttrss/src/main/AndroidManifest.xml b/org.fox.ttrss/src/main/AndroidManifest.xml index e005c593..b9ea6d82 100755 --- a/org.fox.ttrss/src/main/AndroidManifest.xml +++ b/org.fox.ttrss/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="396" + android:versionName="1.164" > 0) { - menu.setHeaderTitle(R.string.headline_context_multiple); - menu.setGroupVisible(R.id.menu_group_single_article, false); - } else { - AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; - Article article = getArticleAtPosition(info.position); - - menu.setHeaderTitle(Html.fromHtml(article.title)); - menu.setGroupVisible(R.id.menu_group_single_article, true); - } - menu.findItem(R.id.set_labels).setEnabled(m_activity.getApiLevel() >= 1); menu.findItem(R.id.article_set_note).setEnabled(m_activity.getApiLevel() >= 1); super.onCreateContextMenu(menu, v, menuInfo); - - }*/ + } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -469,7 +470,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, m_list.setOnItemClickListener(this); m_list.setOnScrollListener(this); - //registerForContextMenu(m_list); + registerForContextMenu(m_list); if (m_activity.isSmallScreen()) { m_activity.setTitle(m_feed.title); @@ -901,7 +902,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, } @Override - public View getView(final int position, View convertView, ViewGroup parent) { + public View getView(final int position, final View convertView, ViewGroup parent) { View v = convertView; @@ -1131,6 +1132,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, holder.flavorImageOverflow.setVisibility(View.GONE); holder.headlineHeader.setBackgroundDrawable(null); + // this is needed if our flavor image goes behind base listview element holder.headlineHeader.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -1138,6 +1140,15 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, } }); + holder.headlineHeader.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + m_activity.openContextMenu(v); + + return true; + } + }); + if (showFlavorImage && article.flavorImageUri != null && holder.flavorImageView != null) { if (holder.flavorImageOverflow != null) { holder.flavorImageOverflow.setOnClickListener(new View.OnClickListener() { @@ -1172,6 +1183,16 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, popup.show(); } }); + + holder.flavorImageView.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + + m_activity.openContextMenu(v); + + return true; + } + }); } if (!article.flavorImageUri.equals(holder.flavorImageView.getTag())) { diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/VideoPlayerActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/VideoPlayerActivity.java index 1399b8f4..348f36c9 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/VideoPlayerActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/VideoPlayerActivity.java @@ -279,7 +279,10 @@ public class VideoPlayerActivity extends CommonActivity { @Override public boolean onContextItemSelected(MenuItem item) { - return onVideoMenuItemSelected(item); + if (!onVideoMenuItemSelected(item)) + return super.onContextItemSelected(item); + else + return true; } public boolean onVideoMenuItemSelected(android.view.MenuItem item) { diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java index 453ed82c..89c1f0d4 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java @@ -103,6 +103,32 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis return selected; } + @Override + public void onCreateContextMenu(ContextMenu menu, View v, + ContextMenuInfo menuInfo) { + + getActivity().getMenuInflater().inflate(R.menu.context_headlines, menu); + + menu.findItem(R.id.set_labels).setVisible(false); + menu.findItem(R.id.article_set_note).setVisible(false); + menu.findItem(R.id.headlines_article_unread).setVisible(false); // TODO: implement + + super.onCreateContextMenu(menu, v, menuInfo); + } + + @Override + public boolean onContextItemSelected(MenuItem item) { + AdapterContextMenuInfo info = (AdapterContextMenuInfo) item + .getMenuInfo(); + + int articleId = getArticleIdAtPosition(info.position); + + if (!onArticleMenuItemSelected(item, articleId)) + return super.onContextItemSelected(item); + else + return true; + } + private boolean onArticleMenuItemSelected(MenuItem item, int articleId) { switch (item.getItemId()) { case R.id.headlines_article_link_copy: @@ -158,7 +184,7 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis return true; default: Log.d(TAG, "onArticleMenuItemSelected, unhandled id=" + item.getItemId()); - return super.onContextItemSelected(item); + return false; } } @@ -271,6 +297,7 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis m_list.setOnItemClickListener(this); m_list.setOnScrollListener(this); + registerForContextMenu(m_list); return view; } diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row.xml b/org.fox.ttrss/src/main/res/layout/headlines_row.xml index 7c66087e..a7f321c5 100755 --- a/org.fox.ttrss/src/main/res/layout/headlines_row.xml +++ b/org.fox.ttrss/src/main/res/layout/headlines_row.xml @@ -57,6 +57,7 @@