From 4e667479aec485b2f5b58b76e679d2400d383f7e Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 31 Dec 2012 12:49:30 +0400 Subject: layout improvements, add missing files --- src/org/fox/ttrss/ArticleFragment.java | 4 ++ src/org/fox/ttrss/FeedsActivity.java | 24 +++++++++-- src/org/fox/ttrss/HeadlinesActivity.java | 6 ++- src/org/fox/ttrss/offline/OfflineActivity.java | 2 + .../fox/ttrss/offline/OfflineFeedsActivity.java | 49 +++++++++++++++++++--- 5 files changed, 75 insertions(+), 10 deletions(-) (limited to 'src/org/fox') diff --git a/src/org/fox/ttrss/ArticleFragment.java b/src/org/fox/ttrss/ArticleFragment.java index 9e3734e8..86fc4472 100644 --- a/src/org/fox/ttrss/ArticleFragment.java +++ b/src/org/fox/ttrss/ArticleFragment.java @@ -126,6 +126,10 @@ public class ArticleFragment extends Fragment implements GestureDetector.OnDoubl else titleStr = m_article.title; + if (!m_activity.isSmallScreen()) { + title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 21f); + } + title.setText(titleStr); title.setPaintFlags(title.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); title.setOnClickListener(new OnClickListener() { diff --git a/src/org/fox/ttrss/FeedsActivity.java b/src/org/fox/ttrss/FeedsActivity.java index 7d95e317..58f8eda6 100644 --- a/src/org/fox/ttrss/FeedsActivity.java +++ b/src/org/fox/ttrss/FeedsActivity.java @@ -10,6 +10,7 @@ import org.fox.ttrss.util.AppRater; import android.view.ViewGroup; import android.animation.LayoutTransition; +import android.animation.ObjectAnimator; import android.annotation.SuppressLint; import android.content.Intent; import android.content.SharedPreferences; @@ -21,6 +22,7 @@ import android.support.v4.app.FragmentTransaction; import android.util.Log; import android.view.MenuItem; import android.view.View; +import android.widget.LinearLayout; public class FeedsActivity extends OnlineActivity implements HeadlinesEventListener { private final String TAG = this.getClass().getSimpleName(); @@ -97,7 +99,7 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe } else { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); - + if (m_prefs.getBoolean("enable_cats", false)) { ft.replace(R.id.feeds_fragment, new FeedCategoriesFragment(), FRAG_CATS); } else { @@ -115,7 +117,13 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe } } else { // savedInstanceState != null m_actionbarUpEnabled = savedInstanceState.getBoolean("actionbarUpEnabled"); - + + if (!isSmallScreen()) { + // temporary hack because FeedsActivity doesn't track whether active feed is open + LinearLayout container = (LinearLayout) findViewById(R.id.fragment_container); + container.setWeightSum(3f); + } + if (!isCompatMode() && m_actionbarUpEnabled) { getActionBar().setDisplayHomeAsUpEnabled(true); } @@ -175,7 +183,17 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe ft.replace(R.id.headlines_fragment, new LoadingFragment(), null); ft.commit(); - + + if (!isCompatMode()) { + LinearLayout container = (LinearLayout) findViewById(R.id.fragment_container); + 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() { diff --git a/src/org/fox/ttrss/HeadlinesActivity.java b/src/org/fox/ttrss/HeadlinesActivity.java index 81dd1043..81c4ca8c 100644 --- a/src/org/fox/ttrss/HeadlinesActivity.java +++ b/src/org/fox/ttrss/HeadlinesActivity.java @@ -121,7 +121,11 @@ public class HeadlinesActivity extends OnlineActivity implements HeadlinesEventL @Override public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { + switch (item.getItemId()) { + case android.R.id.home: + finish(); + overridePendingTransition(0, R.anim.right_slide_out); + return true; default: Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId()); return super.onOptionsItemSelected(item); diff --git a/src/org/fox/ttrss/offline/OfflineActivity.java b/src/org/fox/ttrss/offline/OfflineActivity.java index f7ee9768..608b9bcf 100644 --- a/src/org/fox/ttrss/offline/OfflineActivity.java +++ b/src/org/fox/ttrss/offline/OfflineActivity.java @@ -76,6 +76,8 @@ public class OfflineActivity extends CommonActivity { if (m_prefs.getString("theme", "THEME_DARK").equals("THEME_DARK")) { setTheme(R.style.DarkTheme); + } else if (m_prefs.getString("theme", "THEME_DARK").equals("THEME_SEPIA")) { + setTheme(R.style.SepiaTheme); } else { setTheme(R.style.LightTheme); } diff --git a/src/org/fox/ttrss/offline/OfflineFeedsActivity.java b/src/org/fox/ttrss/offline/OfflineFeedsActivity.java index 07bedc37..1b35d9e1 100644 --- a/src/org/fox/ttrss/offline/OfflineFeedsActivity.java +++ b/src/org/fox/ttrss/offline/OfflineFeedsActivity.java @@ -1,12 +1,16 @@ package org.fox.ttrss.offline; import org.fox.ttrss.GlobalState; +import org.fox.ttrss.LoadingFragment; import org.fox.ttrss.R; +import android.animation.LayoutTransition; +import android.animation.ObjectAnimator; import android.annotation.SuppressLint; import android.content.Intent; import android.database.sqlite.SQLiteStatement; import android.os.Bundle; +import android.os.Handler; import android.preference.PreferenceManager; import android.provider.BaseColumns; import android.support.v4.app.Fragment; @@ -14,6 +18,8 @@ import android.support.v4.app.FragmentTransaction; import android.util.Log; import android.view.MenuItem; import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; public class OfflineFeedsActivity extends OfflineActivity implements OfflineHeadlinesEventListener { private final String TAG = this.getClass().getSimpleName(); @@ -96,6 +102,16 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead findViewById(R.id.loading_container).setVisibility(View.GONE); initMenu(); + + /* if (!isSmallScreen()) { + LinearLayout container = (LinearLayout) findViewById(R.id.fragment_container); + container.setWeightSum(3f); + } */ + + if (!isCompatMode() && !isSmallScreen()) { + ((ViewGroup)findViewById(R.id.headlines_fragment)).setLayoutTransition(new LayoutTransition()); + ((ViewGroup)findViewById(R.id.feeds_fragment)).setLayoutTransition(new LayoutTransition()); + } } public void openFeedArticles(int feedId, boolean isCat) { @@ -189,7 +205,7 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead onFeedSelected(feedId, false, true); } - public void onFeedSelected(int feedId, boolean isCat, boolean open) { + public void onFeedSelected(final int feedId, final boolean isCat, boolean open) { if (open) { if (isSmallScreen()) { @@ -201,13 +217,34 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead startActivityForResult(intent, 0); } else { - FragmentTransaction ft = getSupportFragmentManager() - .beginTransaction(); + /* if (!isCompatMode()) { + LinearLayout container = (LinearLayout) findViewById(R.id.fragment_container); + float wSum = container.getWeightSum(); + if (wSum <= 2.0f) { + ObjectAnimator anim = ObjectAnimator.ofFloat(container, "weightSum", wSum, 3.0f); + anim.setDuration(200); + anim.start(); + } + } */ - OfflineHeadlinesFragment hf = new OfflineHeadlinesFragment(feedId, isCat); - ft.replace(R.id.headlines_fragment, hf, FRAG_HEADLINES); + // ^ no idea why the animation hangs half the time :( + + LinearLayout container = (LinearLayout) findViewById(R.id.fragment_container); + container.setWeightSum(3f); + + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + FragmentTransaction ft = getSupportFragmentManager() + .beginTransaction(); + + OfflineHeadlinesFragment hf = new OfflineHeadlinesFragment(feedId, isCat); + ft.replace(R.id.headlines_fragment, hf, FRAG_HEADLINES); + + ft.commit(); + } + }, 10); - ft.commit(); } } } -- cgit v1.2.3-54-g00ecf