List of usage examples for android.support.v4.app BackStackEntryTrojan getFragmentInBackStackRecord
public static Fragment getFragmentInBackStackRecord(final FragmentManager.BackStackEntry entry)
From source file:org.mariotaku.twidere.activity.DualPaneActivity.java
@Override public void onBackStackChanged() { if (isDualPaneMode()) { final FragmentManager fm = getSupportFragmentManager(); final int count = fm.getBackStackEntryCount(); final Fragment left_pane_fragment = fm.findFragmentById(PANE_LEFT); final Fragment right_pane_fragment = fm.findFragmentById(PANE_RIGHT); final View main_view = findViewById(R.id.main); final boolean left_pane_used = left_pane_fragment != null && left_pane_fragment.isAdded(); final boolean right_pane_used = right_pane_fragment != null && right_pane_fragment.isAdded(); if (count > 0) { final BackStackEntry entry = fm.getBackStackEntryAt(count - 1); if (entry == null) return; final Fragment fragment = BackStackEntryTrojan.getFragmentInBackStackRecord(entry); if (fragment instanceof Panes.Right) { showRightPane();//from w w w. j a v a2 s.c o m } else if (fragment instanceof Panes.Left) { showLeftPane(); } } else { if (fm.findFragmentById(R.id.main) != null || left_pane_used) { showLeftPane(); } else if (right_pane_used) { showRightPane(); } } if (main_view != null) { main_view.setVisibility(left_pane_used ? View.GONE : View.VISIBLE); } } }
From source file:com.afayear.android.client.activity.DualPaneActivity.java
@Override public void onBackStackChanged() { if (isDualPaneMode()) { final FragmentManager fm = getSupportFragmentManager(); final int count = fm.getBackStackEntryCount(); final Fragment left_pane_fragment = fm.findFragmentById(PANE_LEFT); final Fragment right_pane_fragment = fm.findFragmentById(PANE_RIGHT); final View main_view = findViewById(R.id.main); final boolean left_pane_used = left_pane_fragment != null && left_pane_fragment.isAdded(); final boolean right_pane_used = right_pane_fragment != null && right_pane_fragment.isAdded(); if (count > 0) { final BackStackEntry entry = fm.getBackStackEntryAt(count - 1); if (entry == null) return; final Fragment fragment = BackStackEntryTrojan.getFragmentInBackStackRecord(entry); if (fragment instanceof Panes.Right) { showRightPane();/* ww w . ja v a 2 s . c om*/ } else if (fragment instanceof Panes.Left) { showLeftPane(); } } else { if (fm.findFragmentById(R.id.main) != null || left_pane_used) { showLeftPane(); } else if (right_pane_used) { showRightPane(); } } if (main_view != null) { final int visibility = left_pane_used ? View.GONE : View.VISIBLE; // Visibility changed, so start animation. if (main_view.getVisibility() != visibility) { final Animation anim = AnimationUtils.loadAnimation(this, left_pane_used ? android.R.anim.fade_out : android.R.anim.fade_in); main_view.startAnimation(anim); } main_view.setVisibility(visibility); } } }
From source file:org.mariotaku.twidere.activity.support.DualPaneActivity.java
@Override public void onBackStackChanged() { if (!isDualPaneMode()) return;/*from w w w. j av a 2s . c om*/ final FragmentManager fm = getSupportFragmentManager(); final int count = fm.getBackStackEntryCount(); final Fragment leftPaneFragment = fm.findFragmentById(PANE_LEFT); final Fragment rightPaneFragment = fm.findFragmentById(PANE_RIGHT); final boolean leftPaneUsed = leftPaneFragment != null && leftPaneFragment.isAdded(); final boolean rightPaneUsed = rightPaneFragment != null && rightPaneFragment.isAdded(); if (count > 0) { final BackStackEntry entry = fm.getBackStackEntryAt(count - 1); if (entry == null) return; final Fragment fragment = BackStackEntryTrojan.getFragmentInBackStackRecord(entry); if (fragment instanceof Panes.Right) { showRightPane(); } else if (fragment instanceof Panes.Left) { showLeftPane(); } } else { if (fm.findFragmentById(getMainViewId()) != null || leftPaneUsed) { showLeftPane(); } else if (rightPaneUsed) { showRightPane(); } } updateMainViewVisibility(); }