package com.jdroid.android.sample.ui.loading; import android.os.Bundle; import android.view.MenuItem; import android.view.View; import com.jdroid.android.fragment.FragmentHelper.UseCaseTrigger; import com.jdroid.android.recycler.AbstractRecyclerFragment; import com.jdroid.android.recycler.RecyclerViewAdapter; import com.jdroid.android.recycler.SwipeRecyclerFragment; import com.jdroid.android.sample.R; import com.jdroid.android.sample.ui.adapter.SampleRecyclerViewType; import com.jdroid.android.sample.usecase.SampleItemsUseCase; import com.jdroid.java.utils.IdGenerator; public class SwipeRefreshLoadingFragment extends SwipeRecyclerFragment { private SampleItemsUseCase sampleItemsUseCase; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); sampleItemsUseCase = new SampleItemsUseCase(); } @Override public void onStart() { super.onStart(); registerUseCase(sampleItemsUseCase, this, UseCaseTrigger.ONCE); } @Override public void onStop() { super.onStop(); unregisterUseCase(sampleItemsUseCase, this); } @Override public void onRefresh() { if (!sampleItemsUseCase.isInProgress()) { executeUseCase(sampleItemsUseCase); } } @Override public void onFinishUseCase() { executeOnUIThread(new Runnable() { @Override public void run() { setAdapter(new RecyclerViewAdapter(new SampleRecyclerViewType() { @Override public void onItemSelected(String item, View view) { getAdapter().removeItem(item); } @Override public AbstractRecyclerFragment getAbstractRecyclerFragment() { return SwipeRefreshLoadingFragment.this; } }, sampleItemsUseCase.getItems())); dismissLoading(); } }); } @Override public Integer getMenuResourceId() { return R.menu.recycler_menu; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.add: getAdapter().addItem(IdGenerator.getIntId().toString()); return true; default: return super.onOptionsItemSelected(item); } } }