diff options
| author | Andrew Dolgov <fox@madoka.volgo-balt.ru> | 2013-05-21 14:31:15 +0400 |
|---|---|---|
| committer | Andrew Dolgov <fox@madoka.volgo-balt.ru> | 2013-05-21 14:31:15 +0400 |
| commit | 4f49ae38dd06974ada031153569b5fff64e8afb3 (patch) | |
| tree | b1bb52e4f07b4cc4b4f436a28865d87161a72be6 /src/org/fox/ttrss/offline | |
| parent | 1bc939e60b361bd85915511b0b3c27bb4ae12238 (diff) | |
| parent | 48f2680916df329bbe34365ee58ceed67dc082ba (diff) | |
Merge branch 'master' of github.com:gothfox/Tiny-Tiny-RSS-for-Honeycomb
Diffstat (limited to 'src/org/fox/ttrss/offline')
6 files changed, 103 insertions, 18 deletions
diff --git a/src/org/fox/ttrss/offline/OfflineActivity.java b/src/org/fox/ttrss/offline/OfflineActivity.java index 319b76c8..de437fcf 100644 --- a/src/org/fox/ttrss/offline/OfflineActivity.java +++ b/src/org/fox/ttrss/offline/OfflineActivity.java @@ -169,9 +169,9 @@ public class OfflineActivity extends CommonActivity { .findFragmentByTag(FRAG_ARTICLE); switch (item.getItemId()) { - case android.R.id.home: + /* case android.R.id.home: finish(); - return true; + return true; */ case R.id.go_online: switchOnline(); return true; diff --git a/src/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java b/src/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java index 85f49d6b..426cda0d 100644 --- a/src/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java +++ b/src/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java @@ -15,6 +15,7 @@ import android.support.v4.widget.SimpleCursorAdapter; import android.util.Log; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; +import android.view.View.OnClickListener; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; @@ -22,6 +23,7 @@ import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.AdapterView.OnItemClickListener; +import android.widget.ImageButton; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; @@ -195,8 +197,8 @@ public class OfflineFeedCategoriesFragment extends Fragment implements OnItemCli m_activity.onCatSelected(feedId); } - if (!m_activity.isSmallScreen()) - m_selectedCatId = feedId; + /* if (!m_activity.isSmallScreen()) + m_selectedCatId = feedId; */ m_adapter.notifyDataSetChanged(); } @@ -282,6 +284,21 @@ public class OfflineFeedCategoriesFragment extends Fragment implements OnItemCli if (icon != null) { icon.setImageResource(cursor.getInt(cursor.getColumnIndex("unread")) > 0 ? R.drawable.ic_rss : R.drawable.ic_rss_bw); } + + ImageButton ib = (ImageButton) v.findViewById(R.id.feed_menu_button); + + if (ib != null) { + if (m_activity.isDarkTheme()) + ib.setImageResource(R.drawable.ic_mailbox_collapsed_holo_dark); + + ib.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + getActivity().openContextMenu(v); + } + }); + } + return v; } diff --git a/src/org/fox/ttrss/offline/OfflineFeedsActivity.java b/src/org/fox/ttrss/offline/OfflineFeedsActivity.java index dea8d336..fc0f521f 100644 --- a/src/org/fox/ttrss/offline/OfflineFeedsActivity.java +++ b/src/org/fox/ttrss/offline/OfflineFeedsActivity.java @@ -24,6 +24,7 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead private final String TAG = this.getClass().getSimpleName(); private boolean m_actionbarUpEnabled = false; + private int m_actionbarRevertDepth = 0; @SuppressLint("NewApi") @Override @@ -44,8 +45,9 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead if (savedInstanceState != null) { m_actionbarUpEnabled = savedInstanceState.getBoolean("actionbarUpEnabled"); + m_actionbarRevertDepth = savedInstanceState.getInt("actionbarRevertDepth"); - if (!isCompatMode() && m_actionbarUpEnabled) { + if (m_actionbarUpEnabled) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); } @@ -55,10 +57,8 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead if (intent.getIntExtra("feed", -10000) != -10000 || intent.getIntExtra("category", -10000) != -10000 || intent.getIntExtra("article", -10000) != -10000) { - if (!isCompatMode()) { - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - m_actionbarUpEnabled = true; - } + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + m_actionbarUpEnabled = true; FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); @@ -129,6 +129,18 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { + case android.R.id.home: + if (m_actionbarRevertDepth > 0) { + + m_actionbarRevertDepth = m_actionbarRevertDepth - 1; + m_actionbarUpEnabled = m_actionbarRevertDepth > 0; + getSupportActionBar().setDisplayHomeAsUpEnabled(m_actionbarUpEnabled); + + onBackPressed(); + } else { + finish(); + } + return true; case R.id.show_feeds: setUnreadOnly(!getUnreadOnly()); initMenu(); @@ -145,6 +157,7 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead super.onSaveInstanceState(out); out.putBoolean("actionbarUpEnabled", m_actionbarUpEnabled); + out.putInt("actionbarRevertDepth", m_actionbarRevertDepth); GlobalState.getInstance().save(out); } @@ -181,7 +194,13 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead } public void onCatSelected(int catId, boolean openAsFeed) { + OfflineFeedCategoriesFragment fc = (OfflineFeedCategoriesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_CATS); + if (openAsFeed) { + if (fc != null) { + fc.setSelectedFeedId(catId); + } + onFeedSelected(catId, true, true); } else { if (isSmallScreen()) { @@ -190,6 +209,10 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead startActivityForResult(intent, 0); } else { + if (fc != null) { + fc.setSelectedFeedId(-1); + } + FragmentTransaction ft = getSupportFragmentManager() .beginTransaction(); @@ -198,6 +221,10 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead ft.replace(R.id.feeds_fragment, ff, FRAG_FEEDS); ft.addToBackStack(null); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + m_actionbarUpEnabled = true; + m_actionbarRevertDepth = m_actionbarRevertDepth + 1; ft.commit(); } @@ -305,7 +332,9 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead intent.putExtra("isCat", hf.getFeedIsCat()); intent.putExtra("article", articleId); - startActivityForResult(intent, 0); + startActivityForResult(intent, 0); + + overridePendingTransition(R.anim.right_slide_in, 0); } } else { refresh(); diff --git a/src/org/fox/ttrss/offline/OfflineFeedsFragment.java b/src/org/fox/ttrss/offline/OfflineFeedsFragment.java index 50e13afb..a2231485 100644 --- a/src/org/fox/ttrss/offline/OfflineFeedsFragment.java +++ b/src/org/fox/ttrss/offline/OfflineFeedsFragment.java @@ -20,6 +20,7 @@ import android.support.v4.widget.SimpleCursorAdapter; import android.util.Log; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; +import android.view.View.OnClickListener; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; @@ -27,6 +28,7 @@ import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.AdapterView.OnItemClickListener; +import android.widget.ImageButton; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; @@ -307,6 +309,20 @@ public class OfflineFeedsFragment extends Fragment implements OnItemClickListene } + ImageButton ib = (ImageButton) v.findViewById(R.id.feed_menu_button); + + if (ib != null) { + if (m_activity.isDarkTheme()) + ib.setImageResource(R.drawable.ic_mailbox_collapsed_holo_dark); + + ib.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + getActivity().openContextMenu(v); + } + }); + } + return v; } } diff --git a/src/org/fox/ttrss/offline/OfflineHeadlinesActivity.java b/src/org/fox/ttrss/offline/OfflineHeadlinesActivity.java index 9aabfc9d..cfd1e19e 100644 --- a/src/org/fox/ttrss/offline/OfflineHeadlinesActivity.java +++ b/src/org/fox/ttrss/offline/OfflineHeadlinesActivity.java @@ -3,6 +3,8 @@ package org.fox.ttrss.offline; import org.fox.ttrss.GlobalState; import org.fox.ttrss.R; +import com.actionbarsherlock.view.MenuItem; + import android.annotation.SuppressLint; import android.content.Intent; import android.content.SharedPreferences; @@ -13,6 +15,7 @@ import android.preference.PreferenceManager; import android.provider.BaseColumns; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; +import android.util.Log; import android.view.View; public class OfflineHeadlinesActivity extends OfflineActivity implements OfflineHeadlinesEventListener { @@ -33,9 +36,7 @@ public class OfflineHeadlinesActivity extends OfflineActivity implements Offline setContentView(R.layout.headlines); - if (!isCompatMode()) { - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - } + getSupportActionBar().setDisplayHomeAsUpEnabled(true); setSmallScreen(findViewById(R.id.headlines_fragment) == null); @@ -93,6 +94,19 @@ public class OfflineHeadlinesActivity extends OfflineActivity implements Offline } @Override + public boolean onOptionsItemSelected(MenuItem item) { + 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); + } + } + + @Override public void onArticleSelected(int articleId, boolean open) { SQLiteStatement stmt = getWritableDb().compileStatement( "UPDATE articles SET modified = 1, unread = 0 " + "WHERE " + BaseColumns._ID @@ -144,4 +158,10 @@ public class OfflineHeadlinesActivity extends OfflineActivity implements Offline public void onArticleSelected(int articleId) { onArticleSelected(articleId, true); } + + @Override + public void onBackPressed() { + super.onBackPressed(); + overridePendingTransition(0, R.anim.right_slide_out); + } } diff --git a/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java b/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java index e7e848d2..b8ac6023 100644 --- a/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java +++ b/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java @@ -38,6 +38,7 @@ import android.widget.AdapterView; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.AdapterView.OnItemClickListener; import android.widget.CheckBox; +import android.widget.ImageButton; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; @@ -283,7 +284,7 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis list.setEmptyView(view.findViewById(R.id.no_headlines)); registerForContextMenu(list); - if (m_activity.isSmallScreen() || m_activity.isPortrait()) + if (m_activity.isSmallScreen()) view.findViewById(R.id.headlines_fragment).setPadding(0, 0, 0, 0); getActivity().setProgressBarIndeterminateVisibility(false); @@ -576,18 +577,20 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis }); } - /* ImageButton ib = (ImageButton) v.findViewById(R.id.article_menu_button); + ImageButton ib = (ImageButton) v.findViewById(R.id.article_menu_button); if (ib != null) { - ib.setVisibility(android.os.Build.VERSION.SDK_INT >= 10 ? View.VISIBLE : View.GONE); + if (m_activity.isDarkTheme()) + ib.setImageResource(R.drawable.ic_mailbox_collapsed_holo_dark); + ib.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { getActivity().openContextMenu(v); } }); - } */ - + } + return v; } |