summaryrefslogtreecommitdiff
path: root/org.fox.ttrss
diff options
context:
space:
mode:
Diffstat (limited to 'org.fox.ttrss')
-rwxr-xr-xorg.fox.ttrss/src/main/AndroidManifest.xml4
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java107
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java6
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) {