summaryrefslogtreecommitdiff
path: root/src/org/fox/ttrss/FeedsActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/fox/ttrss/FeedsActivity.java')
-rw-r--r--src/org/fox/ttrss/FeedsActivity.java509
1 files changed, 0 insertions, 509 deletions
diff --git a/src/org/fox/ttrss/FeedsActivity.java b/src/org/fox/ttrss/FeedsActivity.java
deleted file mode 100644
index 90e2c118..00000000
--- a/src/org/fox/ttrss/FeedsActivity.java
+++ /dev/null
@@ -1,509 +0,0 @@
-package org.fox.ttrss;
-
-
-import java.util.Date;
-import java.util.HashMap;
-
-import org.fox.ttrss.types.Article;
-import org.fox.ttrss.types.ArticleList;
-import org.fox.ttrss.types.Feed;
-import org.fox.ttrss.types.FeedCategory;
-import org.fox.ttrss.util.AppRater;
-
-import android.animation.ObjectAnimator;
-import android.annotation.SuppressLint;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-import android.os.Handler;
-import android.preference.PreferenceManager;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentTransaction;
-import android.util.Log;
-import android.util.TypedValue;
-import android.view.MenuItem;
-import android.view.Window;
-import android.view.WindowManager;
-import android.widget.LinearLayout;
-
-import com.google.gson.JsonElement;
-import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
-import com.readystatesoftware.systembartint.SystemBarTintManager;
-
-public class FeedsActivity extends OnlineActivity implements HeadlinesEventListener {
- private final String TAG = this.getClass().getSimpleName();
-
- private static final int HEADLINES_REQUEST = 1;
-
- protected SharedPreferences m_prefs;
- protected long m_lastRefresh = 0;
-
- private boolean m_actionbarUpEnabled = false;
- private int m_actionbarRevertDepth = 0;
- private SlidingMenu m_slidingMenu;
- private boolean m_feedIsSelected = false;
- private boolean m_feedWasSelected = false;
-
- @SuppressLint("NewApi")
- @Override
- public void onCreate(Bundle savedInstanceState) {
- m_prefs = PreferenceManager
- .getDefaultSharedPreferences(getApplicationContext());
-
- setAppTheme(m_prefs);
-
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.headlines);
-
- setStatusBarTint();
-
- setSmallScreen(findViewById(R.id.sw600dp_anchor) == null &&
- findViewById(R.id.sw600dp_port_anchor) == null);
-
- GlobalState.getInstance().load(savedInstanceState);
-
- if (isSmallScreen() || findViewById(R.id.sw600dp_port_anchor) != null) {
- m_slidingMenu = new SlidingMenu(this);
-
-/* if (findViewById(R.id.sw600dp_port_anchor) != null) {
- m_slidingMenu.setBehindWidth(getScreenWidthInPixel() * 2/3);
- } */
-
- m_slidingMenu.setMode(SlidingMenu.LEFT);
- m_slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
- m_slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
- m_slidingMenu.setMenu(R.layout.feeds);
- m_slidingMenu.setSlidingEnabled(true);
-
- m_slidingMenu.setOnClosedListener(new SlidingMenu.OnClosedListener() {
-
- @Override
- public void onClosed() {
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- m_actionbarUpEnabled = true;
- m_feedIsSelected = true;
-
- initMenu();
- }
- });
-
- m_slidingMenu.setOnOpenedListener(new SlidingMenu.OnOpenedListener() {
-
- @Override
- public void onOpened() {
- if (m_actionbarRevertDepth == 0) {
- m_actionbarUpEnabled = false;
- getSupportActionBar().setDisplayHomeAsUpEnabled(false);
- refresh(false);
- }
-
- m_feedIsSelected = false;
- initMenu();
- }
- });
- }
-
- if (savedInstanceState == null) {
- if (m_slidingMenu != null)
- m_slidingMenu.showMenu();
-
- final Intent i = getIntent();
- boolean shortcutMode = i.getBooleanExtra("shortcut_mode", false);
-
- Log.d(TAG, "is_shortcut_mode: " + shortcutMode);
-
- if (shortcutMode) {
- LoginRequest lr = new LoginRequest(this, false, new OnLoginFinishedListener() {
-
- @Override
- public void OnLoginSuccess() {
- int feedId = i.getIntExtra("feed_id", 0);
- boolean isCat = i.getBooleanExtra("feed_is_cat", false);
- String feedTitle = i.getStringExtra("feed_title");
-
- Feed tmpFeed = new Feed(feedId, feedTitle, isCat);
-
- onFeedSelected(tmpFeed);
- }
-
- @Override
- public void OnLoginFailed() {
- login();
- }
- });
-
- HashMap<String, String> map = new HashMap<String, String>() {
- {
- put("op", "login");
- put("user", m_prefs.getString("login", "").trim());
- put("password", m_prefs.getString("password", "").trim());
- }
- };
-
- lr.execute(map);
- }
-
- //m_pullToRefreshAttacher.setRefreshing(true);
-
- FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
-
- if (m_prefs.getBoolean("enable_cats", false)) {
- ft.replace(R.id.feeds_fragment, new FeedCategoriesFragment(), FRAG_CATS);
- } else {
- ft.replace(R.id.feeds_fragment, new FeedsFragment(), FRAG_FEEDS);
- }
-
- ft.commit();
-
- AppRater.appLaunched(this);
- checkTrial(true);
-
- } else { // savedInstanceState != null
- m_actionbarUpEnabled = savedInstanceState.getBoolean("actionbarUpEnabled");
- m_actionbarRevertDepth = savedInstanceState.getInt("actionbarRevertDepth");
- m_feedIsSelected = savedInstanceState.getBoolean("feedIsSelected");
- m_feedWasSelected = savedInstanceState.getBoolean("feedWasSelected");
-
- if (findViewById(R.id.sw600dp_port_anchor) != null && m_feedWasSelected && m_slidingMenu != null) {
- m_slidingMenu.setBehindWidth(getScreenWidthInPixel() * 2/3);
- }
-
- if (m_slidingMenu != null && m_feedIsSelected == false) {
- m_slidingMenu.showMenu();
- } else if (m_slidingMenu != null) {
- m_actionbarUpEnabled = true;
- } else {
- m_actionbarUpEnabled = m_actionbarRevertDepth > 0;
- }
-
- if (m_actionbarUpEnabled) {
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- }
-
- if (!isSmallScreen()) {
- // temporary hack because FeedsActivity doesn't track whether active feed is open
- LinearLayout container = (LinearLayout) findViewById(R.id.fragment_container);
-
- if (container != null)
- container.setWeightSum(3f);
- }
-
- }
-
- /* if (!isCompatMode() && !isSmallScreen()) {
- ((ViewGroup)findViewById(R.id.headlines_fragment)).setLayoutTransition(new LayoutTransition());
- ((ViewGroup)findViewById(R.id.feeds_fragment)).setLayoutTransition(new LayoutTransition());
- } */
-
- }
-
- @Override
- protected void initMenu() {
- super.initMenu();
-
- if (m_menu != null && getSessionId() != null) {
- Fragment ff = getSupportFragmentManager().findFragmentByTag(FRAG_FEEDS);
- Fragment cf = getSupportFragmentManager().findFragmentByTag(FRAG_CATS);
- HeadlinesFragment hf = (HeadlinesFragment)getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES);
-
- if (m_slidingMenu != null) {
- m_menu.setGroupVisible(R.id.menu_group_feeds, m_slidingMenu.isMenuShowing());
- m_menu.setGroupVisible(R.id.menu_group_headlines, hf != null && hf.isAdded() && !m_slidingMenu.isMenuShowing());
- } else {
- m_menu.setGroupVisible(R.id.menu_group_feeds, (ff != null && ff.isAdded()) || (cf != null && cf.isAdded()));
- m_menu.setGroupVisible(R.id.menu_group_headlines, hf != null && hf.isAdded());
-
- m_menu.findItem(R.id.update_headlines).setVisible(false);
- }
-
- m_menu.findItem(R.id.headlines_toggle_sidebar).setVisible(false);
-
- MenuItem item = m_menu.findItem(R.id.show_feeds);
-
- if (getUnreadOnly()) {
- item.setTitle(R.string.menu_all_feeds);
- } else {
- item.setTitle(R.string.menu_unread_feeds);
- }
- }
- }
-
- public void onFeedSelected(Feed feed) {
- GlobalState.getInstance().m_loadedArticles.clear();
- //m_pullToRefreshAttacher.setRefreshing(true);
-
- FragmentTransaction ft = getSupportFragmentManager()
- .beginTransaction();
-
- ft.replace(R.id.headlines_fragment, new LoadingFragment(), null);
- ft.commit();
-
- if (!isCompatMode() && !isSmallScreen()) {
- LinearLayout container = (LinearLayout) findViewById(R.id.fragment_container);
- if (container != null) {
- float wSum = container.getWeightSum();
- if (wSum <= 2.0f) {
- ObjectAnimator anim = ObjectAnimator.ofFloat(container, "weightSum", wSum, 3.0f);
- anim.setDuration(200);
- anim.start();
- }
- }
- }
-
- final Feed fFeed = feed;
-
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- FragmentTransaction ft = getSupportFragmentManager()
- .beginTransaction();
-
- HeadlinesFragment hf = new HeadlinesFragment();
- hf.initialize(fFeed);
- ft.replace(R.id.headlines_fragment, hf, FRAG_HEADLINES);
-
- ft.commit();
-
- m_feedIsSelected = true;
- m_feedWasSelected = true;
-
- if (m_slidingMenu != null) {
- if (findViewById(R.id.sw600dp_port_anchor) != null) {
- m_slidingMenu.setBehindWidth(getScreenWidthInPixel() * 2/3);
- }
-
- m_slidingMenu.showContent();
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- m_actionbarUpEnabled = true;
-
- }
- }
- }, 10);
-
-
- Date date = new Date();
-
- if (date.getTime() - m_lastRefresh > 10000) {
- m_lastRefresh = date.getTime();
- refresh(false);
- }
- }
-
- public void onCatSelected(FeedCategory cat, boolean openAsFeed) {
- FeedCategoriesFragment fc = (FeedCategoriesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_CATS);
-
- //m_pullToRefreshAttacher.setRefreshing(true);
-
- if (!openAsFeed) {
-
- if (fc != null) {
- fc.setSelectedCategory(null);
- }
-
- FragmentTransaction ft = getSupportFragmentManager()
- .beginTransaction();
-
- FeedsFragment ff = new FeedsFragment();
- ff.initialize(cat);
- ft.replace(R.id.feeds_fragment, ff, FRAG_FEEDS);
-
- ft.addToBackStack(null);
- ft.commit();
-
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- m_actionbarUpEnabled = true;
- m_actionbarRevertDepth = m_actionbarRevertDepth + 1;
-
- } else {
-
- if (fc != null) {
- fc.setSelectedCategory(cat);
- }
-
- Feed feed = new Feed(cat.id, cat.title, true);
- onFeedSelected(feed);
- }
- }
-
- public void onCatSelected(FeedCategory cat) {
- onCatSelected(cat, m_prefs.getBoolean("browse_cats_like_feeds", false));
- }
-
- @Override
- public void onBackPressed() {
- if (m_actionbarRevertDepth > 0) {
-
- if (m_feedIsSelected && m_slidingMenu != null && !m_slidingMenu.isMenuShowing()) {
- m_slidingMenu.showMenu();
- } else {
- m_actionbarRevertDepth = m_actionbarRevertDepth - 1;
- m_actionbarUpEnabled = m_actionbarRevertDepth > 0;
- getSupportActionBar().setDisplayHomeAsUpEnabled(m_actionbarUpEnabled);
-
- onBackPressed();
- }
- } else if (m_slidingMenu != null && !m_slidingMenu.isMenuShowing()) {
- m_slidingMenu.showMenu();
- } else {
- super.onBackPressed();
- }
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
- if (m_actionbarUpEnabled)
- onBackPressed();
- return true;
- case R.id.show_feeds:
- setUnreadOnly(!getUnreadOnly());
- initMenu();
- refresh();
- return true;
- case R.id.update_feeds:
- //m_pullToRefreshAttacher.setRefreshing(true);
- refresh();
- return true;
- default:
- Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId());
- return super.onOptionsItemSelected(item);
- }
- }
-
- @Override
- protected void loginSuccess(boolean refresh) {
- setLoadingStatus(R.string.blank, false);
- //findViewById(R.id.loading_container).setVisibility(View.GONE);
- initMenu();
-
- if (refresh) refresh();
- }
-
- @Override
- public void onSaveInstanceState(Bundle out) {
- super.onSaveInstanceState(out);
-
- out.putBoolean("actionbarUpEnabled", m_actionbarUpEnabled);
- out.putInt("actionbarRevertDepth", m_actionbarRevertDepth);
- out.putBoolean("feedIsSelected", m_feedIsSelected);
- out.putBoolean("feedWasSelected", m_feedWasSelected);
-
- //if (m_slidingMenu != null )
- // out.putBoolean("slidingMenuVisible", m_slidingMenu.isMenuShowing());
-
- GlobalState.getInstance().save(out);
- }
-
- @Override
- public void onResume() {
- super.onResume();
- initMenu();
- }
-
- @Override
- public void onArticleListSelectionChange(ArticleList m_selectedArticles) {
- initMenu();
- }
-
- public void openFeedArticles(Feed feed) {
- GlobalState.getInstance().m_loadedArticles.clear();
-
- Intent intent = new Intent(FeedsActivity.this, HeadlinesActivity.class);
- intent.putExtra("feed", feed);
- intent.putExtra("article", (Article)null);
- intent.putExtra("searchQuery", (String)null);
-
- startActivityForResult(intent, HEADLINES_REQUEST);
- overridePendingTransition(R.anim.right_slide_in, 0);
- }
-
- public void onArticleSelected(Article article, boolean open) {
- if (article.unread) {
- article.unread = false;
- saveArticleUnread(article);
- }
-
- if (open) {
- HeadlinesFragment hf = (HeadlinesFragment)getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES);
-
- Intent intent = new Intent(FeedsActivity.this, HeadlinesActivity.class);
- intent.putExtra("feed", hf.getFeed());
- intent.putExtra("article", article);
- intent.putExtra("searchQuery", hf.getSearchQuery());
-
- startActivityForResult(intent, HEADLINES_REQUEST);
- overridePendingTransition(R.anim.right_slide_in, 0);
-
- } else {
- initMenu();
- }
- }
-
- @Override
- public void onArticleSelected(Article article) {
- onArticleSelected(article, true);
- }
-
- public void catchupFeed(final Feed feed) {
- super.catchupFeed(feed);
- refresh();
- }
-
- @Override
- public void onHeadlinesLoaded(boolean appended) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode == HEADLINES_REQUEST) {
- GlobalState.getInstance().m_activeArticle = null;
- }
- }
-
- public void createFeedShortcut(Feed feed) {
- final Intent shortcutIntent = new Intent(this, FeedsActivity.class);
- shortcutIntent.putExtra("feed_id", feed.id);
- shortcutIntent.putExtra("feed_is_cat", feed.is_cat);
- shortcutIntent.putExtra("feed_title", feed.title);
- shortcutIntent.putExtra("shortcut_mode", true);
-
- Intent intent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
-
- intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, feed.title);
- intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
- intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));
- intent.putExtra("duplicate", false);
-
- sendBroadcast(intent);
-
- toast(R.string.shortcut_has_been_placed_on_the_home_screen);
- }
-
- public void createCategoryShortcut(FeedCategory cat) {
- createFeedShortcut(new Feed(cat.id, cat.title, true));
- }
-
- public void unsubscribeFeed(final Feed feed) {
- ApiRequest req = new ApiRequest(getApplicationContext()) {
- protected void onPostExecute(JsonElement result) {
- refresh();
- }
- };
-
- @SuppressWarnings("serial")
- HashMap<String, String> map = new HashMap<String, String>() {
- {
- put("sid", getSessionId());
- put("op", "unsubscribeFeed");
- put("feed_id", String.valueOf(feed.id));
- }
- };
-
- req.execute(map);
-
- }
-}