diff options
| -rw-r--r-- | app/src/main/java/org/connectbot/ConsoleActivity.java | 28 | 
1 files changed, 27 insertions, 1 deletions
diff --git a/app/src/main/java/org/connectbot/ConsoleActivity.java b/app/src/main/java/org/connectbot/ConsoleActivity.java index 9ac0c95..0e23979 100644 --- a/app/src/main/java/org/connectbot/ConsoleActivity.java +++ b/app/src/main/java/org/connectbot/ConsoleActivity.java @@ -623,7 +623,7 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne  		tabs = (TabLayout) findViewById(R.id.tabs);  		if (tabs != null) -			tabs.setupWithViewPager(pager); +			setupTabLayoutWithViewPager();  		// detect fling gestures to switch between terminals  		final GestureDetector detect = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() { @@ -799,6 +799,32 @@ public class ConsoleActivity extends AppCompatActivity implements BridgeDisconne  	}  	/** +	 * Ties the {@link TabLayout} to the {@link ViewPager}. +	 * +	 * <p>This method will: +	 * <ul> +	 *     <li>Add a {@link ViewPager.OnPageChangeListener} that will forward events to +	 *     this TabLayout.</li> +	 *     <li>Populate the TabLayout's tabs from the ViewPager's {@link PagerAdapter}.</li> +	 *     <li>Set our {@link TabLayout.OnTabSelectedListener} which will forward +	 *     selected events to the ViewPager</li> +	 * </ul> +	 * </p> +	 */ +	public void setupTabLayoutWithViewPager() { +		tabs.setTabsFromPagerAdapter(adapter); +		pager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabs)); +		tabs.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(pager)); + +		if (adapter.getCount() > 0) { +			final int curItem = pager.getCurrentItem(); +			if (tabs.getSelectedTabPosition() != curItem) { +				tabs.getTabAt(curItem).select(); +			} +		} +	} + +	/**  	 *  	 */  	private void configureOrientation() {  | 
