/** * Copyright (c) 2014, German Neuroinformatics Node (G-Node) * Copyright (c) 2014, Shumail Mohy-ud-Din <shumailmohyuddin@gmail.com> (2014 Version) * Copyright (c) 2013, Yasir Adnan <adnan.ayon@gmail.com> * License: BSD-3 (See LICENSE) */ package com.g_node.gca.abstracts; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.FragmentTransaction; import android.database.Cursor; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.view.ViewPager; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.Toast; import com.g_node.gcaa.R; public class AbstractContent extends FragmentActivity implements ActionBar.TabListener { private String gtag = "GCA-Abs-Con"; private String uuid; private boolean isFav; private MenuItem starG; private ViewPager viewPager; private TabsPagerAdapter mAdapter; private ActionBar actionBar; // Tab titles private String[] tabs = { "Abstract", "Notes" }; private final DatabaseHelper mDbHelper = DatabaseHelper.getInstance(this); @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_abstractcontent_viewpager); Bundle getData = getIntent().getExtras(); uuid = getData.getString("value"); // Initilization viewPager = (ViewPager) findViewById(R.id.pager); actionBar = getActionBar(); mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); mAdapter.setUuid(uuid); //set current UUID for fragments viewPager.setAdapter(mAdapter); actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); // Adding Tabs for (String tab_name : tabs) { actionBar.addTab(actionBar.newTab().setText(tab_name) .setTabListener(this)); } /** * on swiping the viewpager make respective tab selected * */ viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(int position) { // on changing the page // make respected tab selected actionBar.setSelectedNavigationItem(position); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { //This is intentionally empty } @Override public void onPageScrollStateChanged(int arg0) { //This is intentionally empty } }); } //end onCreate @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.abstract_content_menu, menu); starG = menu.findItem(R.id.star); if(mDbHelper.isFavorite(uuid) ){ isFav = true; } else { isFav = false; } if(isFav) { starG.setIcon(R.drawable.ic_action_important_selected); } else { starG.setIcon(R.drawable.ic_action_important); } return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { /* * Menu Item for switching next and previous data */ case R.id.star: Log.i(gtag, "in Onclick of STAR"); if(isFav){ Log.i(gtag, "in isFAV"); mDbHelper.deleteFromABSTRACT_FAVORITES(uuid); Toast.makeText(getApplicationContext(), "Removed from Favorites", Toast.LENGTH_SHORT).show(); starG.setIcon(R.drawable.ic_action_important); isFav = false; }else{ Log.i(gtag, "in else of isFAV"); mDbHelper.addInABSTRACT_FAVORITES(uuid); Toast.makeText(getApplicationContext(), "Added to Favorites", Toast.LENGTH_SHORT).show(); starG.setIcon(R.drawable.ic_action_important_selected); isFav = true; } break; case R.id.next: { Cursor abstractCursor = mDbHelper.fetchAbtractDetailsByUUID(uuid); abstractCursor.moveToFirst(); int currentSORTID = abstractCursor.getInt(abstractCursor .getColumnIndex("SORTID")); abstractCursor.close(); Cursor nextAbstracts = mDbHelper.fetchNextAbtractsDetails( currentSORTID); if (nextAbstracts.getCount()>0) { nextAbstracts.moveToFirst(); uuid = nextAbstracts.getString( nextAbstracts.getColumnIndexOrThrow("UUID")); nextAbstracts.close(); mAdapter.setUuid(uuid); mAdapter.notifyDataSetChanged(); invalidateOptionsMenu(); } else { Toast.makeText(getApplicationContext(), "No more Abstracts Left", Toast.LENGTH_SHORT).show(); } break; } case R.id.Previous: { Cursor abstractCursor = mDbHelper.fetchAbtractDetailsByUUID(uuid); abstractCursor.moveToFirst(); int currentSORTID = abstractCursor.getInt(abstractCursor .getColumnIndex("SORTID")); abstractCursor.close(); Cursor prevAbstracts = mDbHelper.fetchPreviousAbtractsDetails( currentSORTID); if (prevAbstracts.getCount()>0) { prevAbstracts.moveToFirst(); uuid = prevAbstracts.getString( prevAbstracts.getColumnIndexOrThrow("UUID")); prevAbstracts.close(); mAdapter.setUuid(uuid); mAdapter.notifyDataSetChanged(); invalidateOptionsMenu(); } else { Toast.makeText(getApplicationContext(), "No more Abstracts Left", Toast.LENGTH_SHORT).show(); } break; } default: break; } return super.onOptionsItemSelected(item); } //end onOptionsMenuItemSelected @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { //This is intentionally empty } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { // on tab selected // show respected fragment view viewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { //This is intentionally empty } @Override protected void onDestroy() { super.onDestroy(); Log.i(gtag, "AbstractContent - on Destroy"); } }