diff options
Diffstat (limited to 'org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsActivity.java')
-rw-r--r-- | org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsActivity.java | 192 |
1 files changed, 88 insertions, 104 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsActivity.java index c2318501..19978bcc 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsActivity.java @@ -1,11 +1,5 @@ package org.fox.ttrss.offline; -import org.fox.ttrss.GlobalState; -import org.fox.ttrss.R; - -import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; - -import android.animation.LayoutTransition; import android.annotation.SuppressLint; import android.content.Intent; import android.database.sqlite.SQLiteStatement; @@ -15,21 +9,29 @@ import android.preference.PreferenceManager; import android.provider.BaseColumns; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBarDrawerToggle; import android.util.Log; +import android.view.Gravity; import android.view.MenuItem; -import android.view.ViewGroup; +import android.view.View; import android.widget.LinearLayout; +import org.fox.ttrss.GlobalState; +import org.fox.ttrss.R; + public class OfflineFeedsActivity extends OfflineActivity implements OfflineHeadlinesEventListener { private final String TAG = this.getClass().getSimpleName(); - private boolean m_actionbarUpEnabled = false; - private int m_actionbarRevertDepth = 0; - private SlidingMenu m_slidingMenu; + //private boolean m_actionbarUpEnabled = false; + //private int m_actionbarRevertDepth = 0; private boolean m_feedIsSelected = false; - private boolean m_feedWasSelected = false; - - @SuppressLint("NewApi") + //private boolean m_feedWasSelected = false; + + private ActionBarDrawerToggle m_drawerToggle; + private DrawerLayout m_drawerLayout; + + @SuppressLint("NewApi") @Override public void onCreate(Bundle savedInstanceState) { m_prefs = PreferenceManager @@ -47,73 +49,48 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead 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.setSlidingEnabled(true); - m_slidingMenu.setMenu(R.layout.feeds); - - 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; - m_feedIsSelected = false; - getSupportActionBar().setDisplayHomeAsUpEnabled(false); - refresh(); - } - - initMenu(); - } - }); - } + m_drawerLayout = (DrawerLayout) findViewById(R.id.headlines_drawer); + + if (m_drawerLayout != null) { + + m_drawerToggle = new ActionBarDrawerToggle(this, m_drawerLayout, R.string.blank, R.string.blank) { + @Override + public void onDrawerOpened(View drawerView) { + invalidateOptionsMenu(); + } - if (savedInstanceState != null) { + @Override + public void onDrawerClosed(View drawerView) { + invalidateOptionsMenu(); + } + }; + + m_drawerLayout.setDrawerListener(m_drawerToggle); + m_drawerToggle.setDrawerIndicatorEnabled(true); + } + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setHomeButtonEnabled(true); + + if (savedInstanceState != null) { - m_actionbarUpEnabled = savedInstanceState.getBoolean("actionbarUpEnabled"); - m_actionbarRevertDepth = savedInstanceState.getInt("actionbarRevertDepth"); + //m_actionbarUpEnabled = savedInstanceState.getBoolean("actionbarUpEnabled"); + //m_actionbarRevertDepth = savedInstanceState.getInt("actionbarRevertDepth"); m_feedIsSelected = savedInstanceState.getBoolean("feedIsSelected"); - m_feedWasSelected = savedInstanceState.getBoolean("feedWasSelected"); + //m_feedWasSelected = savedInstanceState.getBoolean("feedWasSelected"); - if (findViewById(R.id.sw600dp_port_anchor) != null && m_feedWasSelected && m_slidingMenu != null) { + /* 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 (m_drawerLayout != null && m_feedIsSelected == false) { + m_drawerLayout.openDrawer(Gravity.START); + } + } else { - if (m_slidingMenu != null) - m_slidingMenu.showMenu(); + if (m_drawerLayout != null) { + m_drawerLayout.openDrawer(Gravity.START); + } FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); @@ -125,17 +102,16 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead ft.commit(); } - - setLoadingStatus(R.string.blank, false); - - initMenu(); - if (!isCompatMode() && !isSmallScreen()) { - ((ViewGroup)findViewById(R.id.headlines_fragment)).setLayoutTransition(new LayoutTransition()); - ((ViewGroup)findViewById(R.id.feeds_fragment)).setLayoutTransition(new LayoutTransition()); - } + initMenu(); } + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + // Sync the toggle state after onRestoreInstanceState has occurred. + if (m_drawerToggle != null) m_drawerToggle.syncState(); + } + public void openFeedArticles(int feedId, boolean isCat) { if (isSmallScreen()) { Intent intent = new Intent(OfflineFeedsActivity.this, OfflineHeadlinesActivity.class); @@ -149,7 +125,9 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead @Override public void onBackPressed() { - if (m_actionbarRevertDepth > 0) { + super.onBackPressed(); + + /* if (m_actionbarRevertDepth > 0) { if (m_feedIsSelected && m_slidingMenu != null && !m_slidingMenu.isMenuShowing()) { m_slidingMenu.showMenu(); @@ -164,15 +142,18 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead m_slidingMenu.showMenu(); } else { super.onBackPressed(); - } + } */ } @Override public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { + if (m_drawerToggle != null && m_drawerToggle.onOptionsItemSelected(item)) { + return true; + } + + switch (item.getItemId()) { case android.R.id.home: - if (m_actionbarUpEnabled) - onBackPressed(); + onBackPressed(); return true; case R.id.show_feeds: setUnreadOnly(!getUnreadOnly()); @@ -189,10 +170,10 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead public void onSaveInstanceState(Bundle out) { super.onSaveInstanceState(out); - out.putBoolean("actionbarUpEnabled", m_actionbarUpEnabled); - out.putInt("actionbarRevertDepth", m_actionbarRevertDepth); + //out.putBoolean("actionbarUpEnabled", m_actionbarUpEnabled); + //out.putInt("actionbarRevertDepth", m_actionbarRevertDepth); out.putBoolean("feedIsSelected", m_feedIsSelected); - out.putBoolean("feedWasSelected", m_feedWasSelected); + //out.putBoolean("feedWasSelected", m_feedWasSelected); //if (m_slidingMenu != null ) @@ -209,9 +190,11 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead Fragment cf = getSupportFragmentManager().findFragmentByTag(FRAG_CATS); OfflineHeadlinesFragment hf = (OfflineHeadlinesFragment)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()); + if (m_drawerLayout != null) { + boolean isDrawerOpen = m_drawerLayout.isDrawerOpen(Gravity.START); + + m_menu.setGroupVisible(R.id.menu_group_feeds, isDrawerOpen); + m_menu.setGroupVisible(R.id.menu_group_headlines, hf != null && hf.isAdded() && !isDrawerOpen); } 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()); @@ -251,14 +234,14 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead .beginTransaction(); OfflineFeedsFragment ff = new OfflineFeedsFragment(); - ff.initialize(catId); + ff.initialize(catId, true); ft.replace(R.id.feeds_fragment, ff, FRAG_FEEDS); ft.addToBackStack(null); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - m_actionbarUpEnabled = true; - m_actionbarRevertDepth = m_actionbarRevertDepth + 1; + //getSupportActionBar().setDisplayHomeAsUpEnabled(true); + //m_actionbarUpEnabled = true; + //m_actionbarRevertDepth = m_actionbarRevertDepth + 1; ft.commit(); } @@ -291,16 +274,17 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead ft.commit(); m_feedIsSelected = true; - m_feedWasSelected = true; + //m_feedWasSelected = true; - if (m_slidingMenu != null) { - if (findViewById(R.id.sw600dp_port_anchor) != null) { + if (m_drawerLayout != null) { + /* if (findViewById(R.id.sw600dp_port_anchor) != null) { m_slidingMenu.setBehindWidth(getScreenWidthInPixel() * 2/3); - } - - m_slidingMenu.showContent(); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - m_actionbarUpEnabled = true; + } */ + + m_drawerLayout.closeDrawers(); + + //getSupportActionBar().setDisplayHomeAsUpEnabled(true); + //m_actionbarUpEnabled = true; } } }, 10); |