package com.thomasdh.roosterpgplus.Fragments; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.support.v4.widget.SwipeRefreshLayout; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.thomasdh.roosterpgplus.Adapters.AnimatedPagerAdapter; import com.thomasdh.roosterpgplus.Data.Account; import com.thomasdh.roosterpgplus.Data.RoosterInfo; import com.thomasdh.roosterpgplus.Helpers.Apache.BasicNameValuePair; import com.thomasdh.roosterpgplus.Helpers.Apache.NameValuePair; import com.thomasdh.roosterpgplus.Helpers.FragmentTitle; import com.thomasdh.roosterpgplus.R; import com.thomasdh.roosterpgplus.Settings.Constants; import java.util.List; import lombok.Getter; import lombok.Setter; @FragmentTitle(title = R.string.action_bar_dropdown_speciaal_rooster) public class EntityRoosterFragment extends RoosterViewFragment { private static final Long MIN_REFRESH_WAIT_TIME = (long) 2700000; @Getter @Setter private String entity; @Override public String getAnalyticsTitle() { return Constants.ANALYTICS_FRAGMENT_SEARCHROOSTER; } //region Lifecycle @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); setRootView(inflater.inflate(R.layout.fragment_main_entity, container, false)); viewPager = (ViewPager) getRootView().findViewById(R.id.rooster_viewPager); viewPager.setAdapter(new AnimatedPagerAdapter()); swipeRefreshLayout = (SwipeRefreshLayout) getRootView().findViewById(R.id.rooster_swiperefresh); setupSwipeRefreshLayout(); if(savedInstanceState != null) { setEntity(savedInstanceState.getString("ENTITY")); } loadRooster(); return getRootView(); } @Override public void onSaveInstanceState(Bundle outState) { outState.putString("ENTITY", getEntity()); super.onSaveInstanceState(outState); } //endregion //region Statemanagement @Override protected boolean canLoadRooster() { return getEntity() != null; } @Override public List<NameValuePair> getURLQuery(List<NameValuePair> query) { query.add(new BasicNameValuePair("entity", getEntity().replace("ik", Account.getApiKey()))); return query; } @Override public LoadType getLoadType() { Long lastLoad = RoosterInfo.getLoad("entity"+getEntity()+getWeek(), getContext()); if(lastLoad == null || lastLoad == 0) { return LoadType.ONLINE; } else if(System.currentTimeMillis() > lastLoad + MIN_REFRESH_WAIT_TIME) { return LoadType.NEWONLINE; } else { return LoadType.OFFLINE; } } @Override public long getLoad() { return RoosterInfo.getLoad("entity"+getEntity()+getWeek(), getContext()); } @Override public void setLoad() { RoosterInfo.setLoad("entity"+getEntity()+getWeek(), System.currentTimeMillis(), getContext()); } //endregion //region Rooster @Override public void loadRooster(boolean reload) { if(getRootView() != null) ((TextView) getRootView().findViewById(R.id.rooster_entity_desc)).setText("Rooster voor: " + getEntity()); super.loadRooster(reload); } //endregion }