package pl.pwr.smartkill.activities; import java.util.ArrayList; import java.util.HashMap; import pl.pwr.smartkill.R; import pl.pwr.smartkill.SKApplication; import pl.pwr.smartkill.fragments.AllListFragment_; import pl.pwr.smartkill.fragments.ListFragment_; import pl.pwr.smartkill.fragments.ProfileListFragment_; import pl.pwr.smartkill.tools.WebserviceHandler; import pl.pwr.smartkill.tools.httpRequests.PostRequest; import android.content.Context; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.ViewPager; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.ActionBar.Tab; import com.actionbarsherlock.app.SherlockFragmentActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import com.googlecode.androidannotations.annotations.App; import com.googlecode.androidannotations.annotations.Background; import com.googlecode.androidannotations.annotations.EActivity; @EActivity public class MainActivity extends SherlockFragmentActivity { @App SKApplication app; private ViewPager mViewPager; private TabsAdapter mTabsAdapter; private static MainActivity ourInstance; public static MainActivity getInstance(){ return ourInstance; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); setContentView(R.layout.main); getSupportActionBar().setSubtitle(app.getMyProfile().getUsername()); overridePendingTransition(R.anim.shift_in, R.anim.shift_out); ourInstance=this; ActionBar.Tab tab1 = getSupportActionBar().newTab().setText("Wszystkie"); ActionBar.Tab tab2 = getSupportActionBar().newTab().setText("Zapisany"); ActionBar.Tab tab3 = getSupportActionBar().newTab().setText("Profil"); mViewPager = (ViewPager)findViewById(R.id.pager); mTabsAdapter = new TabsAdapter(this, getSupportActionBar(), mViewPager); mTabsAdapter.addTab(tab1, AllListFragment_.class); mTabsAdapter.addTab(tab2, ListFragment_.class); mTabsAdapter.addTab(tab3, ProfileListFragment_.class); mViewPager.setCurrentItem(0); } public static class TabsAdapter extends FragmentPagerAdapter implements ViewPager.OnPageChangeListener, ActionBar.TabListener { private final Context mContext; private final ActionBar mActionBar; private final ViewPager mViewPager; private final ArrayList<String> mTabs = new ArrayList<String>(); public TabsAdapter(FragmentActivity activity, ActionBar actionBar, ViewPager pager) { super(activity.getSupportFragmentManager()); mContext = activity; mActionBar = actionBar; mViewPager = pager; mViewPager.setAdapter(this); mViewPager.setOnPageChangeListener(this); } public void addTab(ActionBar.Tab tab, Class<?> clss) { mTabs.add(clss.getName()); mActionBar.addTab(tab.setTabListener(this)); notifyDataSetChanged(); } @Override public int getCount() { return mTabs.size(); } @Override public Fragment getItem(int position) { return Fragment.instantiate(mContext, mTabs.get(position), null); } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { mActionBar.setSelectedNavigationItem(position); } @Override public void onPageScrollStateChanged(int state) { } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { mViewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { } } // @AfterViews // public void prepare(){ // getMatches(); // } // public static final int REFRESH=1; public static final int LOGOUT=2; @Override public boolean onCreateOptionsMenu(Menu menu) { MenuItem item = menu.add(0,REFRESH,0,"Odśwież"); item.setIcon( R.drawable.refresh) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); MenuItem item2 = menu.add(0,LOGOUT,0,"Wyloguj"); item2.setIcon( R.drawable.logout) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case REFRESH: setProgressBarIndeterminateVisibility(true); // getMatches(); break; case LOGOUT: setProgressBarIndeterminateVisibility(true); logout(); break; } return true; } @Background public void logout(){ HashMap<String , String> params = new HashMap<String, String>(); params.put("id", app.getSessionId()); try { new WebserviceHandler<String>().getAndParse(this, new PostRequest(SKApplication.API_URL+"logout", params), new String()); } catch (Exception e) { } finish(); } }