summaryrefslogtreecommitdiff
path: root/src/org
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-09-19 16:59:08 +0400
committerAndrew Dolgov <[email protected]>2012-09-19 16:59:08 +0400
commitd70e6463ad7d48a24ede3da7ca98d675823e9999 (patch)
tree070781c94e5b28804dd70a96be093c6ab773ef79 /src/org
parentd733127fa1531afad6b2f8472ef0ca64cb8b2a0f (diff)
implement default browsing of articles
Diffstat (limited to 'src/org')
-rw-r--r--src/org/fox/ttrss/ArticlePager.java14
-rw-r--r--src/org/fox/ttrss/FeedCategoriesFragment.java19
-rw-r--r--src/org/fox/ttrss/FeedsActivity.java27
-rw-r--r--src/org/fox/ttrss/FeedsFragment.java30
4 files changed, 76 insertions, 14 deletions
diff --git a/src/org/fox/ttrss/ArticlePager.java b/src/org/fox/ttrss/ArticlePager.java
index 35779843..0608679b 100644
--- a/src/org/fox/ttrss/ArticlePager.java
+++ b/src/org/fox/ttrss/ArticlePager.java
@@ -104,10 +104,11 @@ public class ArticlePager extends Fragment {
if (article != null) {
m_article = article;
- if (article.unread) {
+ /* if (article.unread) {
article.unread = false;
m_activity.saveArticleUnread(article);
- }
+ } */
+
m_listener.onArticleSelected(article, false);
//Log.d(TAG, "Page #" + position + "/" + m_adapter.getCount());
@@ -147,6 +148,15 @@ public class ArticlePager extends Fragment {
if (result != null) {
m_adapter.notifyDataSetChanged();
+
+ if (m_article.id == 0) {
+ if (m_articles.size() > 0) {
+ Log.d(TAG, "blank id on refresh");
+ m_article = m_articles.get(0);
+ m_listener.onArticleSelected(m_article, false);
+ }
+ }
+
} else {
if (m_lastError == ApiError.LOGIN_FAILED) {
m_activity.login();
diff --git a/src/org/fox/ttrss/FeedCategoriesFragment.java b/src/org/fox/ttrss/FeedCategoriesFragment.java
index 64561cf9..ac5c0046 100644
--- a/src/org/fox/ttrss/FeedCategoriesFragment.java
+++ b/src/org/fox/ttrss/FeedCategoriesFragment.java
@@ -95,6 +95,15 @@ public class FeedCategoriesFragment extends Fragment implements OnItemClickListe
if (true) {
FeedCategory cat = getCategoryAtPosition(info.position);
if (cat != null) {
+ m_activity.openFeedArticles(new Feed(cat.id, cat.title, true));
+ //setSelectedCategory(cat);
+ }
+ }
+ return true;
+ case R.id.browse_headlines:
+ if (true) {
+ FeedCategory cat = getCategoryAtPosition(info.position);
+ if (cat != null) {
m_activity.onCatSelected(cat, true);
//setSelectedCategory(cat);
}
@@ -392,7 +401,15 @@ public class FeedCategoriesFragment extends Fragment implements OnItemClickListe
if (list != null) {
FeedCategory cat = (FeedCategory)list.getItemAtPosition(position);
- m_activity.onCatSelected(cat);
+
+ if ("ARTICLES".equals(m_prefs.getString("default_view_mode", "HEADLINES")) &&
+ m_prefs.getBoolean("browse_cats_like_feeds", false)) {
+
+ m_activity.openFeedArticles(new Feed(cat.id, cat.title, true));
+
+ } else {
+ m_activity.onCatSelected(cat);
+ }
if (!m_activity.isSmallScreen())
m_selectedCat = cat;
diff --git a/src/org/fox/ttrss/FeedsActivity.java b/src/org/fox/ttrss/FeedsActivity.java
index fd01606c..e1126fe5 100644
--- a/src/org/fox/ttrss/FeedsActivity.java
+++ b/src/org/fox/ttrss/FeedsActivity.java
@@ -68,7 +68,7 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe
ap.setSearchQuery(intent.getStringExtra("searchQuery"));
- setTitle(intent.getStringExtra("feedTitle"));
+ setTitle(feed.title);
} else {
if (feed != null) {
HeadlinesFragment hf = new HeadlinesFragment(feed);
@@ -136,20 +136,14 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe
}
}
-
public void onFeedSelected(Feed feed) {
GlobalState.getInstance().m_loadedArticles.clear();
if (isSmallScreen()) {
-
Intent intent = new Intent(FeedsActivity.this, FeedsActivity.class);
intent.putExtra("feed", feed);
-
+
startActivityForResult(intent, 0);
-
- //HeadlinesFragment hf = new HeadlinesFragment(feed);
- //ft.replace(R.id.feeds_fragment, hf, FRAG_HEADLINES);
- //ft.addToBackStack(null);
} else {
FragmentTransaction ft = getSupportFragmentManager()
.beginTransaction();
@@ -240,6 +234,22 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe
initMenu();
}
+ public void openFeedArticles(Feed feed) {
+ if (isSmallScreen()) {
+ Intent intent = new Intent(FeedsActivity.this, FeedsActivity.class);
+
+ GlobalState.getInstance().m_activeFeed = feed;
+ GlobalState.getInstance().m_loadedArticles.clear();
+
+ intent.putExtra("feed", feed);
+ intent.putExtra("article", new Article());
+ startActivityForResult(intent, 0);
+
+ } else {
+
+ }
+ }
+
public void onArticleSelected(Article article, boolean open) {
if (article.unread) {
article.unread = false;
@@ -252,7 +262,6 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe
if (isSmallScreen()) {
Intent intent = new Intent(FeedsActivity.this, FeedsActivity.class);
- intent.putExtra("feedTitle", hf.getFeed().title);
intent.putExtra("feed", hf.getFeed());
intent.putExtra("article", article);
intent.putExtra("searchQuery", hf.getSearchQuery());
diff --git a/src/org/fox/ttrss/FeedsFragment.java b/src/org/fox/ttrss/FeedsFragment.java
index 1a82534f..a8284c76 100644
--- a/src/org/fox/ttrss/FeedsFragment.java
+++ b/src/org/fox/ttrss/FeedsFragment.java
@@ -20,6 +20,7 @@ import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
+import org.fox.ttrss.types.Article;
import org.fox.ttrss.types.Feed;
import org.fox.ttrss.types.FeedCategory;
import org.fox.ttrss.types.FeedList;
@@ -136,6 +137,22 @@ public class FeedsFragment extends Fragment implements OnItemClickListener, OnSh
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
.getMenuInfo();
switch (item.getItemId()) {
+ case R.id.browse_articles:
+ if (true) {
+ Feed feed = getFeedAtPosition(info.position);
+ if (feed != null) {
+ m_activity.openFeedArticles(feed);
+ }
+ }
+ return true;
+ case R.id.browse_headlines:
+ if (true) {
+ Feed feed = getFeedAtPosition(info.position);
+ if (feed != null) {
+ m_activity.onFeedSelected(feed);
+ }
+ }
+ return true;
case R.id.catchup_feed:
if (true) {
Feed feed = getFeedAtPosition(info.position);
@@ -163,6 +180,11 @@ public class FeedsFragment extends Fragment implements OnItemClickListener, OnSh
if (feed != null)
menu.setHeaderTitle(feed.title);
+ if (!m_activity.isSmallScreen()) {
+ menu.findItem(R.id.browse_headlines).setVisible(false);
+ menu.findItem(R.id.browse_feeds).setVisible(false);
+ }
+
super.onCreateContextMenu(menu, v, menuInfo);
}
@@ -239,8 +261,12 @@ public class FeedsFragment extends Fragment implements OnItemClickListener, OnSh
cat.title = feed.title;
m_activity.onCatSelected(cat);
- } else {
- m_activity.onFeedSelected(feed);
+ } else {
+ if ("ARTICLES".equals(m_prefs.getString("default_view_mode", "HEADLINES"))) {
+ m_activity.openFeedArticles(feed);
+ } else {
+ m_activity.onFeedSelected(feed);
+ }
}
if (!m_activity.isSmallScreen())