package io.evercam.connect;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
/**
* MainTabActivity
* <p/>
* Tab page, switch between manual and UPnP port forwarding page.
*/
public class MainTabActivity extends FragmentActivity
{
private static final String STATE_SELECTED_NAVIGATION_ITEM = "selected_navigation_item";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_tab);
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.addTab(actionBar.newTab().setText(R.string.titleManualForward).setTabListener
(new TabListener<ManuallyForwardingTab>(this, "tabtwo", ManuallyForwardingTab
.class)));
actionBar.addTab(actionBar.newTab().setText(R.string.titleUpnpForward).setTabListener(new
TabListener<UpnpForwardingTab>(this, "tabone", UpnpForwardingTab.class)));
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState)
{
if(savedInstanceState.containsKey(STATE_SELECTED_NAVIGATION_ITEM))
{
getActionBar().setSelectedNavigationItem(savedInstanceState.getInt
(STATE_SELECTED_NAVIGATION_ITEM));
}
}
@Override
public void onSaveInstanceState(Bundle outState)
{
outState.putInt(STATE_SELECTED_NAVIGATION_ITEM, getActionBar().getSelectedNavigationIndex
());
}
public class TabListener<T extends Fragment> implements ActionBar.TabListener
{
private Fragment mFragment;
private final Activity mActivity;
private final Class<T> mClass;
String mTag;
public TabListener(Activity activity, String tag, Class<T> clz)
{
mActivity = activity;
mTag = tag;
mClass = clz;
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft)
{
mFragment = Fragment.instantiate(mActivity, mClass.getName());
getSupportFragmentManager().beginTransaction().replace(R.id.containter, mFragment)
.commit();
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft)
{
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft)
{
}
}
}