package com.gdg.miagegi.can2015.fragment; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; import com.androidquery.AQuery; import com.gdg.miagegi.can2015.MainActivity; import com.gdg.miagegi.can2015.R; import com.gdg.miagegi.can2015.activity.SocialActivity; import com.gdg.miagegi.can2015.adapter.SocialViewPagerTabAdapter; import com.gdg.miagegi.can2015.event.NetworkOperationEvent; import com.gdg.miagegi.can2015.model.Social; import com.gdg.miagegi.can2015.service.SocialFetchService; import com.gdg.miagegi.can2015.utils.BusProvider; import com.squareup.otto.Subscribe; /** * A simple {@link Fragment} subclass. */ public class FluxFragment extends Fragment{ private SocialViewPagerTabAdapter mAdapter; private Context mContext; private ViewPager mViewPager; private String registrationId; private AQuery aQ; private Context context; protected ActionBar mActionBar; protected ProgressBar mProgressBar; final private static String LOG_TAG = SocialActivity.class.getName(); public FluxFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View v = inflater.inflate(R.layout.activity_social, container, false); ((ActionBarActivity)getActivity()).getSupportActionBar().setHomeButtonEnabled(true); ((ActionBarActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true); ((ActionBarActivity)getActivity()).getSupportActionBar().setTitle("#BEST14"); mProgressBar = (ProgressBar) getActivity().findViewById(R.id.progress); context = getActivity().getApplicationContext(); aQ = new AQuery(getActivity()); mContext = getActivity(); mActionBar.setHomeButtonEnabled(false); mViewPager = (ViewPager) getActivity().findViewById(R.id.pager); //showPager(); Social socialCheck = Social.findFirst(getActivity()); if (socialCheck != null) { showPager(); } else { getActivity().startService(new Intent(getActivity(), SocialFetchService.class)); } return v; } @Subscribe public void onNetworkOperationEvent(NetworkOperationEvent event) { Log.i(LOG_TAG, "I received an event : " + event.getClass().getName() + " : " + event.getMessage()); if (event.hasStarted()) { showProgressBarWithMessage(event.getMessage()); } else if (event.hasFinishedOne()) { hideProgressBar(); } else if (event.hasFinishedAll()) { hideProgressBar(); showPager(); /*Log.i("SHOWPAGER()",Integer.toString(event.mPosition)); BusProvider.getInstance().post(new VoteCompletedEvent(event.mPosition));*/ } else if (event.hasFailed()) { hideProgressBar(); Toast.makeText(mContext, event.getMessage(), Toast.LENGTH_LONG).show(); } } @Override public void onPause() { super.onPause(); BusProvider.getInstance().unregister(this); } @Override public void onResume() { super.onResume(); BusProvider.getInstance().register(this); } public void showPager() { int oldCurrentPosition = 0; if (mAdapter != null) { oldCurrentPosition = mViewPager.getCurrentItem(); } mAdapter = new SocialViewPagerTabAdapter(getFragmentManager(), mContext); if (mViewPager == null) { mViewPager = (ViewPager) getActivity().findViewById(R.id.pager); } mViewPager.setAdapter(mAdapter); mViewPager.setCurrentItem(oldCurrentPosition); /*Log.i("SHOWPAGER","FINISHED");*/ } public void hideProgressBar() { toggleProgressBarVisibility(false, null); } public void toggleProgressBarVisibility(boolean makeVisible, String message) { TextView progressMessageTV = (TextView) getActivity().findViewById(R.id.progress_message); if (!makeVisible) { message = ""; } if (message != null) { progressMessageTV.setText(message); } mProgressBar.setVisibility(makeVisible ? View.VISIBLE : View.GONE); progressMessageTV.setVisibility(makeVisible && message != null ? View.VISIBLE : View.GONE); } public void showProgressBar() { toggleProgressBarVisibility(true, null); } public void showProgressBarWithMessage(String message) { toggleProgressBarVisibility(true, message); } public void toggleProgressBarVisibility(boolean makeVisible) { toggleProgressBarVisibility(makeVisible, null); } }