diff options
Diffstat (limited to 'org.fox.ttrss/src')
3 files changed, 76 insertions, 41 deletions
diff --git a/org.fox.ttrss/src/main/AndroidManifest.xml b/org.fox.ttrss/src/main/AndroidManifest.xml index 35de6748..65e274cb 100755 --- a/org.fox.ttrss/src/main/AndroidManifest.xml +++ b/org.fox.ttrss/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.fox.ttrss" - android:versionCode="363" - android:versionName="1.136" > + android:versionCode="365" + android:versionName="1.138" > <uses-sdk android:minSdkVersion="15" diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java index c2415cb9..03b39868 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java @@ -313,22 +313,22 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { - + getActivity().getMenuInflater().inflate(R.menu.context_headlines, menu); - + if (getSelectedArticles().size() > 0) { menu.setHeaderTitle(R.string.headline_context_multiple); menu.setGroupVisible(R.id.menu_group_single_article, false); } else { - AdapterContextMenuInfo info = (AdapterContextMenuInfo)menuInfo; + 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.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); + menu.findItem(R.id.article_set_note).setEnabled(m_activity.getApiLevel() >= 1); super.onCreateContextMenu(menu, v, menuInfo); @@ -687,6 +687,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, public ImageView textImage; public ImageView textChecked; public View headlineHeader; + public boolean flavorImageEmbedded; } @@ -848,13 +849,13 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; - + final Article article = items.get(position); final HeadlineViewHolder holder; - + int headlineFontSize = Integer.parseInt(m_prefs.getString("headlines_font_size_sp", "13")); int headlineSmallFontSize = Math.max(10, Math.min(18, headlineFontSize - 2)); - + if (v == null) { int layoutId = m_compactLayoutMode ? R.layout.headlines_row_compact : R.layout.headlines_row; @@ -878,7 +879,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, layoutId = m_compactLayoutMode ? R.layout.headlines_row_selected_unread_compact : R.layout.headlines_row_unread; break; } - + LayoutInflater vi = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(layoutId, null); @@ -901,9 +902,9 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, holder.textImage = (ImageView) v.findViewById(R.id.text_image); holder.textChecked = (ImageView) v.findViewById(R.id.text_checked); holder.headlineHeader = v.findViewById(R.id.headline_header); - + v.setTag(holder); - + // http://code.google.com/p/android/issues/detail?id=3414 ((ViewGroup)v).setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); } else { @@ -1000,22 +1001,22 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, } - if (holder.titleView != null) { + if (holder.titleView != null) { holder.titleView.setText(Html.fromHtml(article.title)); holder.titleView.setTextSize(TypedValue.COMPLEX_UNIT_SP, Math.min(21, headlineFontSize + 3)); adjustTitleTextView(article.score, holder.titleView, position); } - if (holder.feedTitleView != null) { + if (holder.feedTitleView != null) { if (article.feed_title != null && (m_feed.is_cat || m_feed.id < 0)) { holder.feedTitleView.setTextSize(TypedValue.COMPLEX_UNIT_SP, headlineSmallFontSize); holder.feedTitleView.setText(article.feed_title); - + } else { holder.feedTitleView.setVisibility(View.GONE); } - + } TypedValue tvAccent = new TypedValue(); @@ -1031,7 +1032,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, holder.markedView.setColorFilter(tvAccent.data); else holder.markedView.setColorFilter(null); - + holder.markedView.setOnClickListener(new OnClickListener() { @Override @@ -1044,7 +1045,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, }); } - + if (holder.publishedView != null) { TypedValue tv = new TypedValue(); m_activity.getTheme().resolveAttribute(article.published ? R.attr.ic_checkbox_marked : R.attr.ic_rss_box, tv, true); @@ -1055,14 +1056,14 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, holder.publishedView.setColorFilter(tvAccent.data); else holder.publishedView.setColorFilter(null); - + holder.publishedView.setOnClickListener(new OnClickListener() { - + @Override public void onClick(View v) { article.published = !article.published; m_adapter.notifyDataSetChanged(); - + m_activity.saveArticlePublished(article); } }); @@ -1088,6 +1089,13 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, holder.excerptView.setTextSize(TypedValue.COMPLEX_UNIT_SP, headlineFontSize); holder.excerptView.setText(excerpt); + + if (!showFlavorImage) { + holder.excerptView.setPadding(holder.excerptView.getPaddingLeft(), + 0, + holder.excerptView.getPaddingRight(), + holder.excerptView.getPaddingBottom()); + } } } @@ -1099,6 +1107,29 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, holder.flavorVideoKindView.setVisibility(View.GONE); holder.headlineHeader.setBackgroundDrawable(null); + holder.headlineHeader.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + m_activity.openContextMenu(v); + return true; + } + }); + + holder.headlineHeader.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + m_listener.onArticleSelected(article); + } + }); + + holder.flavorImageView.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + m_activity.openContextMenu(v); + return true; + } + }); + boolean videoFound = false; if (showFlavorImage && article.articleDoc != null && holder.flavorVideoKindView != null) { @@ -1175,7 +1206,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, holder.flavorVideoKindView.setImageResource(R.drawable.ic_play_circle); - ViewCompat.setTransitionName(holder.flavorImageView, "TRANSITION:ARTICLE_VIDEO_PLAYER"); + //ViewCompat.setTransitionName(holder.flavorImageView, "TRANSITION:ARTICLE_VIDEO_PLAYER"); holder.flavorImageView.setOnClickListener(new OnClickListener() { @Override @@ -1185,12 +1216,14 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, intent.putExtra("streamUri", streamUri); intent.putExtra("title", article.title); - ActivityOptionsCompat options = + /*ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(m_activity, holder.flavorImageView, // The view which starts the transition "TRANSITION:ARTICLE_VIDEO_PLAYER" // The transitionName of the view we’re transitioning to ); - ActivityCompat.startActivity(m_activity, intent, options.toBundle()); + ActivityCompat.startActivity(m_activity, intent, options.toBundle());*/ + + startActivity(intent); } }); @@ -1351,10 +1384,10 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, if (!isAdded() || bitmap == null) return; holder.flavorImageLoadingBar.setVisibility(View.GONE); + holder.flavorImageView.setTag(finalImgSrc); if (bitmap.getWidth() > FLAVOR_IMG_MIN_SIZE && bitmap.getHeight() > FLAVOR_IMG_MIN_SIZE) { holder.flavorImageView.setVisibility(View.VISIBLE); - holder.flavorImageView.setTag(finalImgSrc); if (article.flavorImageCount > 1) { holder.flavorVideoKindView.setVisibility(View.VISIBLE); @@ -1362,6 +1395,8 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, } maybeRepositionFlavorImage(view, bitmap, holder); + } else { + holder.flavorImageView.setImageDrawable(null); } } @@ -1425,10 +1460,10 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, holder.authorView.setText(""); } } - + if (holder.dateView != null) { holder.dateView.setTextSize(TypedValue.COMPLEX_UNIT_SP, headlineSmallFontSize); - + Date d = new Date((long)article.updated * 1000); Date now = new Date(); @@ -1443,24 +1478,24 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, df.setTimeZone(TimeZone.getDefault()); holder.dateView.setText(df.format(d)); } - + if (holder.selectionBoxView != null) { holder.selectionBoxView.setChecked(article.selected); holder.selectionBoxView.setOnClickListener(new OnClickListener() { - + @Override public void onClick(View view) { CheckBox cb = (CheckBox)view; - + if (cb.isChecked()) { article.selected = true; } else { article.selected = false; } - + m_listener.onArticleListSelectionChange(getSelectedArticles()); - + Log.d(TAG, "num selected: " + getSelectedArticles().size()); } }); @@ -1469,13 +1504,13 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, if (holder.menuButtonView != null) { //if (m_activity.isDarkTheme()) // ib.setImageResource(R.drawable.ic_mailbox_collapsed_holo_dark); - - holder.menuButtonView.setOnClickListener(new OnClickListener() { + + holder.menuButtonView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { getActivity().openContextMenu(v); } - }); + }); } return v; diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java index 33cd56fa..eb1fd409 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java @@ -34,9 +34,9 @@ public class Article implements Parcelable { public String note; public boolean selected; - /* not serialized */ - public Document articleDoc; - public Element flavorImage; + /* not serialized */ + public Document articleDoc; + public Element flavorImage; public int flavorImageCount; public Article(Parcel in) { |