Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MainDrawer2 extends ActionBarActivity
- {
- private static final String EXTRA_NAV_ITEM = "extraNavItem";
- private static final String STATE_CURRENT_NAV = "stateCurrentNav";
- private ActionBarDrawerToggle mDrawerToggle;
- private DrawerLayout mDrawerLayout;
- private NavDrawerListAdapter mDrawerAdapter;
- private ListView mDrawerList;
- private CharSequence mTitle;
- private CharSequence mDrawerTitle;
- private MainNavItem mCurrentNavItem;
- public static Intent createLaunchFragmentIntent(Context context, MainNavItem navItem)
- {
- return new Intent(context, MainDrawer2.class)
- .putExtra(EXTRA_NAV_ITEM, navItem.ordinal());
- }
- @Override
- protected void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.fragment_main);
- //Crashlytics.start(this);
- mTitle = mDrawerTitle = getTitle();
- mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
- mDrawerList = (ListView)findViewById(R.id.drawer);
- // Set a toolbar to replace the action bar.
- Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
- setSupportActionBar(toolbar);
- //getActionBar().setDisplayHomeAsUpEnabled(true);
- //enableHomeButtonIfRequired();
- mDrawerAdapter = new NavDrawerListAdapter(getApplicationContext());
- mDrawerList.setAdapter(mDrawerAdapter);
- mDrawerList.setOnItemClickListener(new ListView.OnItemClickListener()
- {
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position, long id)
- {
- displayNavFragment((MainNavItem)parent.getItemAtPosition(position));
- }
- });
- mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
- R.drawable.ic_menu_white, R.string.app_name, R.string.app_name)
- {
- public void onDrawerClosed(View view)
- {
- //getActionBar().setTitle(mTitle);
- invalidateOptionsMenu();
- }
- public void onDrawerOpened(View drawerView)
- {
- //getActionBar().setTitle(mDrawerTitle);
- invalidateOptionsMenu();
- }
- };
- mDrawerLayout.setDrawerListener(mDrawerToggle);
- if(getIntent().hasExtra(EXTRA_NAV_ITEM)){
- MainNavItem navItem = MainNavItem.values()
- [getIntent().getIntExtra(EXTRA_NAV_ITEM,
- MainNavItem.STATISTICS.ordinal())];
- displayNavFragment(navItem);
- }
- else if(savedInstanceState != null){
- mCurrentNavItem = MainNavItem.values()
- [savedInstanceState.getInt(STATE_CURRENT_NAV)];
- setCurrentNavItem(mCurrentNavItem);
- }
- else{
- displayNavFragment(MainNavItem.STATISTICS);
- }
- }
- @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
- private void enableHomeButtonIfRequired()
- {
- if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){
- //getActionBar().setHomeButtonEnabled(true);
- }
- }
- public void setActionBarTitle(String title) {
- //getActionBar().setTitle(title);
- }
- @Override
- public void setTitle(CharSequence title)
- {
- mTitle = title;
- //getActionBar().setTitle(mTitle);
- }
- @Override
- protected void onPostCreate(Bundle savedInstanceState)
- {
- super.onPostCreate(savedInstanceState);
- // Sync the toggle state after onRestoreInstanceState has occurred.
- mDrawerToggle.syncState();
- }
- @Override
- public void onConfigurationChanged(Configuration newConfig)
- {
- super.onConfigurationChanged(newConfig);
- // Pass any configuration change to the drawer toggles
- mDrawerToggle.onConfigurationChanged(newConfig);
- }
- @Override
- protected void onSaveInstanceState(Bundle outState)
- {
- super.onSaveInstanceState(outState);
- if (mCurrentNavItem == null){
- }
- else{
- outState.putInt(STATE_CURRENT_NAV, mCurrentNavItem.ordinal());
- }
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu)
- {
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- /*
- @Override
- public boolean onPrepareOptionsMenu(Menu menu)
- {
- // if nav drawer is opened, hide the action items
- boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
- menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
- return super.onPrepareOptionsMenu(menu);
- }
- */
- private void displayNavFragment(MainNavItem navItem)
- {
- //if(navItem == mCurrentNavItem){
- // return;
- //}
- Fragment fragment = Fragment.instantiate(this,
- navItem.getFragClass().getName());
- if(fragment != null){
- getSupportFragmentManager().beginTransaction()
- .replace(R.id.main, fragment)
- .commit();
- //setCurrentNavItem(navItem);
- }
- }
- private void setCurrentNavItem(MainNavItem navItem)
- {
- int position = navItem.ordinal();
- // If navItem is in DrawerAdapter
- if(position >= 0 && position < mDrawerAdapter.getCount()){
- //mDrawerList.setItemChecked(position, true);
- }
- else{
- // navItem not in DrawerAdapter, de-select current item
- if(mCurrentNavItem != null){
- //mDrawerList.setItemChecked(mCurrentNavItem.ordinal(), false);
- }
- }
- //test to keep item not selected
- int toClear=mDrawerList.getCheckedItemPosition();
- if (toClear >= 0) {
- mDrawerList.setItemChecked(toClear, false);
- }
- mDrawerLayout.closeDrawer(mDrawerList);
- //setTitle(navItem.getTitleResId());
- mCurrentNavItem = navItem;
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
- if(mDrawerLayout.isDrawerOpen(mDrawerList)) {
- mDrawerLayout.closeDrawer(mDrawerList);
- }
- else {
- mDrawerLayout.openDrawer(mDrawerList);
- }
- return true;
- default:
- return super.onOptionsItemSelected(item);
- }
- }
- public void goToSearch(MenuItem item){
- //go to search page
- Fragment Fragment_one;
- FragmentManager man= getSupportFragmentManager();
- FragmentTransaction tran = man.beginTransaction();
- Fragment_one = new Search();
- tran.replace(R.id.main, Fragment_one);//tran.
- tran.addToBackStack(null);
- tran.commit();
- }
- public void scanBarcode(MenuItem item){
- //open scanner
- IntentIntegrator scanIntegrator = new IntentIntegrator(this);
- scanIntegrator.initiateScan();
- }
- public void onActivityResult(int requestCode, int resultCode, Intent intent) {
- //retrieve scan result
- IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
- if (scanningResult != null) {
- //we have a result
- String scanContent = scanningResult.getContents();
- //todo: set scan content into setting, load new fragment which calls async task below. New
- //todo: fragment will have same ui as search. :-)
- Fragment Fragment_one;
- FragmentManager man= this.getSupportFragmentManager();
- FragmentTransaction tran = man.beginTransaction();
- BarcodeFrag fragmentNew = new BarcodeFrag();
- Bundle bundle = new Bundle();
- bundle.putString("scanContent", scanContent);
- fragmentNew.setArguments(bundle);
- tran.replace(R.id.main, fragmentNew);//tran.
- tran.addToBackStack(null);
- //tran.commit();
- tran.commitAllowingStateLoss();
- }
- else{
- Toast toast = Toast.makeText(getApplicationContext(),
- "No scan data received!", Toast.LENGTH_SHORT);
- toast.show();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement