package ca.uwaterloo.uwfoodservices; import java.util.ArrayList; import ca.uwaterloo.uwfoodservices.MenuLists.MenuFragment; import ca.uwaterloo.uwfoodservicesutility.NetworkReceiver; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.ActionBar.Tab; import com.actionbarsherlock.view.MenuItem; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; import android.os.Bundle; import android.preference.PreferenceManager; import android.content.Intent; import android.content.SharedPreferences; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.widget.Toast; public class LocationHours extends SlidingMenus implements ActionBar.TabListener, ActivityCommunicator { ViewPager vp; ActionBar actionBar; public FragmentCommunicator fragmentCommunicator; SharedPreferences.Editor editor; SharedPreferences pref; NetworkReceiver receiver; String filterType = "all"; public final String[] location_tabs = new String[] {"ListView", "MapView"}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_location_hours); pref = PreferenceManager.getDefaultSharedPreferences(this); receiver = new NetworkReceiver(this); actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.setIcon(R.drawable.clock_icon); actionBar.setDisplayUseLogoEnabled(false); vp = (ViewPager) findViewById(R.id.pager); vp.setAdapter(new MenuAdapter(getSupportFragmentManager())); vp.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int position) { switch (position) { case 0: getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); break; default: getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); break; } } }); vp.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { actionBar.setSelectedNavigationItem(position); } }); for (int i = 0; i < 2; i++) { actionBar.addTab(actionBar.newTab() .setText(location_tabs[i]) .setTabListener(this)); } vp.setCurrentItem(0); getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); } public class MenuAdapter extends FragmentStatePagerAdapter { private ArrayList<MenuFragment> mFragments; public MenuAdapter(FragmentManager fm) { super(fm); mFragments = new ArrayList<MenuFragment>(); for (int i = 0; i < location_tabs.length; i++) { mFragments.add(new MenuFragment()); } } @Override public int getCount() { return location_tabs.length; } @Override public Fragment getItem(int position) { if(position == 0){ Fragment fragment = new ListViewFragment(); Bundle args = new Bundle(); args.putInt(MenuFragment.ARG_SECTION_NUMBER, position); if (filterType.equals("all")) { args.putString ("type", "all"); } else if (filterType.equals("location")) { args.putString ("type", "location"); } else if (filterType.equals("watcardVendors")) { args.putString ("type", "watcardVendors"); } fragment.setArguments(args); return fragment; } else{ Fragment fragment = new MyMapFragment(); Bundle args = new Bundle(); args.putInt(MenuFragment.ARG_SECTION_NUMBER, position); fragment.setArguments(args); return fragment; } } } @Override public boolean onOptionsItemSelected(MenuItem item) { int itemId = item.getItemId(); if (item.getTitle() == "Settings") { Intent settingsActivity = new Intent(getBaseContext(), SettingsActivity.class); startActivity(settingsActivity); return true; } else if (itemId == android.R.id.home) { toggle(); return true; } else if (item.getTitle() == "Refresh") { if(receiver.isNetwork()){ Intent intent = new Intent(LocationHours.this, SplashScreen.class); editor = pref.edit(); editor.putString("refresh", "locations"); editor.commit(); startActivity(intent); finish(); } else{ Toast.makeText(getApplicationContext(), "Cannot refresh because either there is no network or the network does not match your preferences", Toast.LENGTH_SHORT).show(); } return true; } else { return super.onOptionsItemSelected(item); } } @Override public void onResume() { super.onResume(); } @Override public void passDataToActivity(int position, String filterOption) { this.filterType = filterOption; fragmentCommunicator.passDataToFragment(position, filterType); } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { vp.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub } }