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.bookingHistory; //ww w . j a v a 2s . co m 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.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.CancellableTask; import com.example.jens.myapplication.apimanager.SimpleRequestTask; import com.example.jens.myapplication.apimanager.manager.CampManager; import com.example.jens.myapplication.apimanager.manager.LoginManager; import com.example.jens.myapplication.camps.RecyclerItemClickListener; import com.example.jens.myapplication.domain.Booking; import com.example.jens.myapplication.sam.JoetzApplication; import com.example.jens.myapplication.sam.MyFragment; import com.example.jens.myapplication.util.ActivityUtils; import java.util.Collections; import java.util.Comparator; import java.util.LinkedList; import java.util.List; public class BookingHistoryOverviewFragment extends MyFragment { //private OnFragmentInteractionListener mListener; private RecyclerView mLstBookings; private List<Booking> mBookings; private CancellableTask mTaskRetrieveCamps; private SimpleRequestTask mListenerLoadCamps; private LinkedList<View> rootViews = new LinkedList<>(); private LinearLayout mLlyError; private TextView mTxtNoBookings; private ProgressBar mPgbLoading; public static BookingHistoryOverviewFragment newInstance() { BookingHistoryOverviewFragment fragment = new BookingHistoryOverviewFragment(); return fragment; } public BookingHistoryOverviewFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); JoetzApplication.getContext().restartIfLoggedOut(); LoginManager loginManager = JoetzApplication.getContext().getLoginManager(); mBookings = loginManager.getUser().getBookings(); Collections.sort(mBookings, new Comparator<Booking>() { @Override public int compare(Booking lhs, Booking rhs) { return rhs.getDateOfRegistration().compareTo(lhs.getDateOfRegistration()); } }); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View rootView = inflater.inflate(R.layout.fragment_booking_history_overview, container, false); mLlyError = (LinearLayout) rootView.findViewById(R.id.llyError); rootViews.add(mLlyError); mTxtNoBookings = (TextView) rootView.findViewById(R.id.txtNoBookings); rootViews.add(mTxtNoBookings); mPgbLoading = (ProgressBar) rootView.findViewById(R.id.pgbLoading); rootViews.add(mPgbLoading); GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), ActivityUtils.getSpanCount(getActivity())); mLstBookings = (RecyclerView) rootView.findViewById(R.id.lstBookings); mLstBookings.setLayoutManager(gridLayoutManager); mLstBookings.addOnItemTouchListener(new RecyclerItemClickListener(getActivity(), new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position) { openBooking(mBookings.get(position).getId()); } })); rootViews.add(mLstBookings); CampManager campManager = JoetzApplication.getContext().getCampManager(); if(campManager.isCampsLoaded()){ loadBookings(); }else{ loadCamps(); } return rootView; } private void loadCamps(){ CampManager campManager = JoetzApplication.getContext().getCampManager(); // mLstBookings.setVisibility(View.GONE); // mPgbLoading.setVisibility(View.VISIBLE); setRootview(mPgbLoading); mListenerLoadCamps = new SimpleRequestTask() { @Override public void doTask(int statusCode) { mListenerLoadCamps = null; mTaskRetrieveCamps = null; if(!ApiConnection.isSuccessCode(statusCode)){ //TODO some fancy error message return; } // mLstBookings.setVisibility(View.VISIBLE); // mPgbLoading.setVisibility(View.GONE); // setRootview(mLstBookings); loadBookings(); } }; mTaskRetrieveCamps = campManager.retrieveCamps(mListenerLoadCamps); } private void openBooking(long id){ Intent i = new Intent(getActivity(), BookingHistoryDetailActivity.class); i.putExtra(BookingHistoryDetailActivity.ARG_BOOKING_ID, id); startActivity(i); } private void loadBookings(){ if(mBookings.size() == 0){ // mTxtNoBookings.setVisibility(View.VISIBLE); // mLstBookings.setVisibility(View.GONE); setRootview(mTxtNoBookings); } else{ mLstBookings.setAdapter(new BookingsAdapter(getActivity(), mBookings)); // mTxtNoBookings.setVisibility(View.GONE); // mLstBookings.setVisibility(View.VISIBLE); setRootview(mLstBookings); } } private void setRootview(View view){ for(View v : rootViews){ v.setVisibility(View.GONE); } view.setVisibility(View.VISIBLE); } @Override public void onDestroy() { super.onDestroy(); if(mListenerLoadCamps != null){ JoetzApplication.getContext().getCampManager().unsubscribeLoadCamps(mListenerLoadCamps); } } /*@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 onDetach() { super.onDetach(); mListener = null; } public interface OnFragmentInteractionListener { public void onUserLogout(); }*/ }