Back to project page Joetz-Android-V2.
The source code is released under:
GNU General Public License
If you think the Android project Joetz-Android-V2 listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.example.jens.myapplication.activities; //from ww w . j a v a 2 s. c o m import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; import com.example.jens.myapplication.R; import com.example.jens.myapplication.apimanager.ApiConnection; import com.example.jens.myapplication.apimanager.SimpleRequestTask; import com.example.jens.myapplication.apimanager.manager.ActivityManager; import com.example.jens.myapplication.camps.RecyclerItemClickListener; import com.example.jens.myapplication.domain.User; import com.example.jens.myapplication.sam.JoetzApplication; import com.example.jens.myapplication.sam.MyFragment; import com.example.jens.myapplication.util.ActivityUtils; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; public class FragmentListActivities extends MyFragment { private OnFragmentInteractionListener mListener; private SimpleRequestTask mRetrieveTaskListener; private ActivityManager mActivityManager; private RecyclerView mLstActivities; private ProgressBar mPgbLoading; private LinkedList<View> mRootViews = new LinkedList<>(); private TextView mTxtNoActivities; private LinearLayout mLlyError; private TextView mTxtInfo; private Button mBtnTryAgain; private List<JoetzActivity> activities; public static FragmentListActivities newInstance() { FragmentListActivities fragment = new FragmentListActivities(); return fragment; } public FragmentListActivities() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mActivityManager = JoetzApplication.getContext().getActivityManager(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View rootView = inflater.inflate(R.layout.fragment_list_activities, container, false); mPgbLoading = (ProgressBar) rootView.findViewById(R.id.pgbLoading); mTxtNoActivities = (TextView) rootView.findViewById(R.id.txtNoActivities); mLlyError = (LinearLayout) rootView.findViewById(R.id.llyError); mTxtInfo = (TextView) rootView.findViewById(R.id.txtInfo); mBtnTryAgain = (Button) rootView.findViewById(R.id.btnTryAgain); mBtnTryAgain.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { loadActivities(); } }); GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), ActivityUtils.getSpanCount(getActivity())); mLstActivities = (RecyclerView) rootView.findViewById(R.id.lstActivities); mLstActivities.setLayoutManager(gridLayoutManager); mLstActivities.addOnItemTouchListener(new RecyclerItemClickListener(getActivity(), new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position) { openActivity(activities.get(position).getId()); } })); mRootViews.add(mLstActivities); mRootViews.add(mPgbLoading); mRootViews.add(mLlyError); mRootViews.add(mTxtNoActivities); loadActivities(); return rootView; } /** * Open the detailpage for an activity * @param activityId activity ID */ private void openActivity(long activityId){ Intent i = new Intent(getActivity(), ActivityDetailActivity.class); i.putExtra(ActivityDetailActivity.ARG_ACTIVITY_ID, activityId); startActivity(i); } /** * Load the activities */ private void loadActivities(){ setVisibleRootView(mPgbLoading); if(mActivityManager.getActivities() == null){ //If the activities are not loaded, load them mRetrieveTaskListener = new SimpleRequestTask() { @Override public void doTask(int statusCode) { mRetrieveTaskListener = null; if(ApiConnection.isSuccessCode(statusCode)){ loadActivities(); }else{ String errorMessage; if(ApiConnection.isConnectionFailedCode(statusCode)){ errorMessage = getString(R.string.error_connection_failed); }else{ errorMessage = getString(R.string.error_unknown); } mTxtInfo.setText(errorMessage); setVisibleRootView(mLlyError); } } }; //mRetrieveTask = mActivityManager.retrieveActivities(); mActivityManager.retrieveActivities(mRetrieveTaskListener); return; } List<JoetzActivity> allActivities = mActivityManager.getActivities(); //Filter User u = JoetzApplication.getContext().getLoginManager().getUser(); List<Long> invitedActivities = u.getInvitedActivities(); List<Long> acceptedActivities = u.getAcceptedActivities(); List<Long> declinedActivities = u.getDeclinedActivities(); activities = new ArrayList<>(); for(JoetzActivity ja : allActivities){ if(invitedActivities.contains(ja.getId()) || acceptedActivities.contains(ja.getId()) || declinedActivities.contains(ja.getId())){ activities.add(ja); } } if(activities.size() == 0){ setVisibleRootView(mTxtNoActivities); return; } mLstActivities.setAdapter(new JoetzActivitiesAdapter(activities)); setVisibleRootView(mLstActivities); } private void setVisibleRootView(View view){ for(View v : mRootViews){ v.setVisibility(View.GONE); } view.setVisibility(View.VISIBLE); } @Override public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnFragmentInteractionListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener"); } } @Override public void onDestroy() { super.onDestroy(); if(mRetrieveTaskListener != null){ mActivityManager.unsubscribeListActivities(mRetrieveTaskListener); mRetrieveTaskListener = null; } } @Override public void onDetach() { super.onDetach(); mListener = null; } public interface OnFragmentInteractionListener { } }