package jp.gr.procon.proconapp.ui.fragment; import android.os.Bundle; import android.support.v4.widget.SwipeRefreshLayout; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import jp.gr.procon.proconapp.R; import jp.gr.procon.proconapp.event.BusHolder; import jp.gr.procon.proconapp.event.RequestUpdateEvent; public class HomeFragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener , NoticeOutlineFragment.OnUpdateNoticeOutlineListener , GameResultOutlineFragment.OnUpdateGameResultOutlineListener , PhotoOutlineFragment.OnUpdatePhotoOutlineListener { private SwipeRefreshLayout mSwipeRefreshLayout; private boolean mUpdatedNotice; private boolean mUpdatedGameResult; private boolean mUpdatedPhoto; public static HomeFragment newInstance() { HomeFragment fragment = new HomeFragment(); Bundle args = new Bundle(); fragment.setArguments(args); return fragment; } public HomeFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_home, container, false); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); mSwipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.layout_swipe_refresh); mSwipeRefreshLayout.setOnRefreshListener(this); mSwipeRefreshLayout.setColorSchemeResources( R.color.indicator_red, R.color.indicator_green, R.color.indicator_blue, R.color.indicator_orange); if (savedInstanceState == null) { getChildFragmentManager() .beginTransaction() .add(R.id.container_notice, NoticeOutlineFragment.newInstance()) .add(R.id.container_game_result, GameResultOutlineFragment.newInstance()) .add(R.id.container_photo, PhotoOutlineFragment.newInstance()) .commit(); } } @Override public void onStop() { mSwipeRefreshLayout.setRefreshing(false); super.onStop(); } @Override public void onRefresh() { mUpdatedNotice = false; mUpdatedGameResult = false; mUpdatedPhoto = false; BusHolder.getInstance().post(new RequestUpdateEvent()); } @Override public void OnCompleteNoticeOutlineUpdate() { mUpdatedNotice = true; finishRefreshIfFinish(); } @Override public void OnCompleteGameResultOutlineUpdate() { mUpdatedGameResult = true; finishRefreshIfFinish(); } @Override public void OnCompletePhotoOutlineUpdate() { mUpdatedPhoto = true; finishRefreshIfFinish(); } private void finishRefreshIfFinish() { if (mUpdatedNotice && mUpdatedGameResult && mUpdatedPhoto) { mSwipeRefreshLayout.setRefreshing(false); } } }