package at.tugraz.examreminder.ui;
import android.content.Intent;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import at.tugraz.examreminder.ExamReminderApplication;
import at.tugraz.examreminder.R;
import at.tugraz.examreminder.adapter.ExamsAdapter;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.mobidevelop.widget.SplitPaneLayout;
import com.viewpagerindicator.TabPageIndicator;
public class MainActivity extends SherlockFragmentActivity implements ViewPager.OnPageChangeListener {
SplitPaneLayout splitLayout;
FragmentAdapter adapter;
public void onCreate(android.os.Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
splitLayout = (SplitPaneLayout) findViewById(R.id.split_layout);
adapter = new FragmentAdapter(getSupportFragmentManager());
ViewPager pager = (ViewPager)findViewById(R.id.pager);
pager.setAdapter(adapter);
TabPageIndicator indicator = (TabPageIndicator) findViewById(R.id.indicator);
indicator.setViewPager(pager);
indicator.setOnPageChangeListener(this);
}
@Override
protected void onResume() {
super.onResume();
if(ExamReminderApplication.useTabletMode(this))
splitLayout.setSplitterPositionPercent(0.4f);
else
splitLayout.setSplitterPositionPercent(1.f);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.settings :
startActivity(new Intent(this, SettingsActivity.class));
return true;
case R.id.about:
startActivity(new Intent(this, AboutActivity.class));
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public void onPageScrolled(int i, float v, int i2) {
}
@Override
public void onPageSelected(int i) {
if(adapter.getPageTitle(i).equals(FragmentAdapter.EXAMS)){
ViewGroup container = (ViewGroup)splitLayout.findViewById(R.id.exams_fragment_container);
if(container != null){
ListView examslistview = (ListView)container.getChildAt(0);
if(examslistview != null) {
((ExamsAdapter)examslistview.getAdapter()).notifyDataSetChanged();
}
}
}
}
@Override
public void onPageScrollStateChanged(int i) {
}
class FragmentAdapter extends FragmentPagerAdapter {
public final static String EXAMS = "Exams";
public final static String COURSES = "Courses";
public final String[] CONTENT = new String[] { COURSES, EXAMS };
public FragmentAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0: return new CoursesFragment();
case 1: return new ExamsFragment();
default: return null;
}
}
@Override
public CharSequence getPageTitle(int position) {
return CONTENT[position % CONTENT.length];
}
@Override
public int getCount() {
return CONTENT.length;
}
}
}