summaryrefslogtreecommitdiff
path: root/main/src/main/java/de/blinkt/openvpn/activities/MainActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/main/java/de/blinkt/openvpn/activities/MainActivity.java')
-rw-r--r--main/src/main/java/de/blinkt/openvpn/activities/MainActivity.java143
1 files changed, 84 insertions, 59 deletions
diff --git a/main/src/main/java/de/blinkt/openvpn/activities/MainActivity.java b/main/src/main/java/de/blinkt/openvpn/activities/MainActivity.java
index 1124fe47..d59640de 100644
--- a/main/src/main/java/de/blinkt/openvpn/activities/MainActivity.java
+++ b/main/src/main/java/de/blinkt/openvpn/activities/MainActivity.java
@@ -5,95 +5,120 @@
package de.blinkt.openvpn.activities;
-import android.app.ActionBar;
-import android.app.ActionBar.Tab;
import android.app.Activity;
import android.app.Fragment;
-import android.app.FragmentTransaction;
+import android.app.FragmentManager;
import android.content.Intent;
+import android.support.annotation.StringRes;
+import android.support.v4n.app.FragmentStatePagerAdapter;
+import android.support.v4n.view.ViewPager;
+
+import java.util.Vector;
import de.blinkt.openvpn.R;
-import de.blinkt.openvpn.fragments.*;
+import de.blinkt.openvpn.fragments.AboutFragment;
+import de.blinkt.openvpn.fragments.FaqFragment;
+import de.blinkt.openvpn.fragments.GeneralSettings;
+import de.blinkt.openvpn.fragments.SendDumpFragment;
+import de.blinkt.openvpn.fragments.VPNProfileList;
+import de.blinkt.openvpn.views.PagerSlidingTabStrip;
+import de.blinkt.openvpn.views.SlidingTabLayout;
+import de.blinkt.openvpn.views.TabBarView;
public class MainActivity extends Activity {
- protected void onCreate(android.os.Bundle savedInstanceState) {
+ private ViewPager mPager;
+ private ScreenSlidePagerAdapter mPagerAdapter;
+ private SlidingTabLayout mSlidingTabLayout;
+
+ protected void onCreate(android.os.Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- ActionBar bar = getActionBar();
- bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
- Tab vpnListTab = bar.newTab().setText(R.string.vpn_list_title);
- Tab generalTab = bar.newTab().setText(R.string.generalsettings);
- Tab faqtab = bar.newTab().setText(R.string.faq);
- Tab abouttab = bar.newTab().setText(R.string.about);
+ setContentView(R.layout.main_activity);
+
+
+ // Instantiate a ViewPager and a PagerAdapter.
+ mPager = (ViewPager) findViewById(R.id.pager);
+ mPagerAdapter = new ScreenSlidePagerAdapter(getFragmentManager());
+
+
+
+
+
+ mPagerAdapter.addTab(R.string.vpn_list_title, VPNProfileList.class);
+
+ mPagerAdapter.addTab(R.string.generalsettings, GeneralSettings.class);
+ mPagerAdapter.addTab(R.string.faq, FaqFragment.class);
+
+ if(SendDumpFragment.getLastestDump(this)!=null) {
+ mPagerAdapter.addTab(R.string.crashdump, SendDumpFragment.class);
+ }
+
+ mPagerAdapter.addTab(R.string.about, AboutFragment.class);
+ mPager.setAdapter(mPagerAdapter);
- vpnListTab.setTabListener(new TabListener<VPNProfileList>("profiles", VPNProfileList.class));
- generalTab.setTabListener(new TabListener<GeneralSettings>("settings", GeneralSettings.class));
- faqtab.setTabListener(new TabListener<FaqFragment>("faq", FaqFragment.class));
- abouttab.setTabListener(new TabListener<AboutFragment>("about", AboutFragment.class));
+ /*mSlidingTabLayout = (SlidingTabLayout) findViewById(R.id.slding_tabs);
+ mSlidingTabLayout.setViewPager(mPager); */
- bar.addTab(vpnListTab);
- bar.addTab(generalTab);
- bar.addTab(faqtab);
- bar.addTab(abouttab);
+ TabBarView tabs = (TabBarView) findViewById(R.id.sliding_tabs);
+ tabs.setViewPager(mPager);
+ /*
if (false) {
Tab logtab = bar.newTab().setText("Log");
logtab.setTabListener(new TabListener<LogFragment>("log", LogFragment.class));
bar.addTab(logtab);
- }
+ }*/
+
- if(SendDumpFragment.getLastestDump(this)!=null) {
- Tab sendDump = bar.newTab().setText(R.string.crashdump);
- sendDump.setTabListener(new TabListener<SendDumpFragment>("crashdump",SendDumpFragment.class));
- bar.addTab(sendDump);
- }
}
- protected class TabListener<T extends Fragment> implements ActionBar.TabListener
- {
- private Fragment mFragment;
- private String mTag;
- private Class<T> mClass;
-
- public TabListener(String tag, Class<T> clz) {
- mTag = tag;
- mClass = clz;
-
- // Check to see if we already have a fragment for this tab, probably
- // from a previously saved state. If so, deactivate it, because our
- // initial state is that a tab isn't shown.
- mFragment = getFragmentManager().findFragmentByTag(mTag);
- if (mFragment != null && !mFragment.isDetached()) {
- FragmentTransaction ft = getFragmentManager().beginTransaction();
- ft.detach(mFragment);
- ft.commit();
- }
+ class Tab {
+ public Class<? extends Fragment> fragmentClass;
+ String mName;
+
+ public Tab(Class<? extends Fragment> fClass, @StringRes String name){
+ mName = name;
+ fragmentClass = fClass;
}
-
- public void onTabSelected(Tab tab, FragmentTransaction ft) {
- if (mFragment == null) {
- mFragment = Fragment.instantiate(MainActivity.this, mClass.getName());
- ft.add(android.R.id.content, mFragment, mTag);
- } else {
- ft.attach(mFragment);
- }
+
+ }
+
+ private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
+ private Vector<Tab> mTabs = new Vector<Tab>();
+
+ public ScreenSlidePagerAdapter(FragmentManager fm) {
+ super(fm);
}
- public void onTabUnselected(Tab tab, FragmentTransaction ft) {
- if (mFragment != null) {
- ft.detach(mFragment);
+ @Override
+ public Fragment getItem(int position) {
+ try {
+ return mTabs.get(position).fragmentClass.newInstance();
+ } catch (InstantiationException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
}
+ return null;
}
+ @Override
+ public CharSequence getPageTitle(int position) {
+ return mTabs.get(position).mName;
+ }
- @Override
- public void onTabReselected(Tab tab, FragmentTransaction ft) {
+ @Override
+ public int getCount() {
+ return mTabs.size();
+ }
- }
- }
+ public void addTab(@StringRes int name, Class<? extends Fragment> fragmentClass) {
+ mTabs.add(new Tab(fragmentClass, getString(name)));
+ }
+ }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {