package com.dl7.mvp.module.manage.love.photo; import android.content.DialogInterface; import android.content.Intent; import android.os.Handler; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; import com.dl7.mvp.R; import com.dl7.mvp.adapter.SlideInBottomAdapter; import com.dl7.mvp.injector.components.DaggerLovePhotoComponent; import com.dl7.mvp.injector.modules.LovePhotoModule; import com.dl7.mvp.local.table.BeautyPhotoInfo; import com.dl7.mvp.module.base.BaseFragment; import com.dl7.mvp.module.base.ILocalPresenter; import com.dl7.mvp.module.base.ILocalView; import com.dl7.mvp.utils.CommonConstant; import com.dl7.mvp.utils.DialogHelper; import com.dl7.recycler.adapter.BaseQuickAdapter; import com.dl7.recycler.helper.RecyclerViewHelper; import com.dl7.recycler.listener.OnRecyclerViewItemLongClickListener; import java.util.List; import javax.inject.Inject; import butterknife.BindView; import jp.wasabeef.recyclerview.animators.FlipInLeftYAnimator; import static android.app.Activity.RESULT_OK; /** * Created by long on 2016/12/13. * 图片收藏界面 */ public class LovePhotoFragment extends BaseFragment<ILocalPresenter> implements ILocalView<BeautyPhotoInfo> { @BindView(R.id.rv_love_list) RecyclerView mRvPhotoList; @BindView(R.id.default_bg) TextView mDefaultBg; @Inject BaseQuickAdapter mAdapter; @Override protected int attachLayoutRes() { return R.layout.fragment_love_list; } @Override protected void initInjector() { DaggerLovePhotoComponent.builder() .applicationComponent(getAppComponent()) .lovePhotoModule(new LovePhotoModule(this)) .build() .inject(this); } @Override protected void initViews() { SlideInBottomAdapter slideAdapter = new SlideInBottomAdapter(mAdapter); RecyclerViewHelper.initRecyclerViewSV(mContext, mRvPhotoList, slideAdapter, 2); mRvPhotoList.setItemAnimator(new FlipInLeftYAnimator()); mAdapter.setOnItemLongClickListener(new OnRecyclerViewItemLongClickListener() { @Override public boolean onItemLongClick(View view, final int position) { DialogHelper.deleteDialog(mContext, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { mPresenter.delete(mAdapter.getItem(position)); mAdapter.removeItem(position); } }); return true; } }); } @Override protected void updateViews(boolean isRefresh) { mPresenter.getData(isRefresh); } @Override public void loadData(List<BeautyPhotoInfo> photoList) { if (mDefaultBg.getVisibility() == View.VISIBLE) { mDefaultBg.setVisibility(View.GONE); } mAdapter.updateItems(photoList); } @Override public void noData() { mDefaultBg.setVisibility(View.VISIBLE); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CommonConstant.REQUEST_CODE && resultCode == RESULT_OK) { final boolean[] delLove = data.getBooleanArrayExtra(CommonConstant.RESULT_KEY); // 延迟 500MS 做删除操作,不然退回来看不到动画效果 new Handler().postDelayed(new Runnable() { @Override public void run() { for (int i = delLove.length - 1; i >= 0; i--) { if (delLove[i]) { mAdapter.removeItem(i); } } } }, 500); } } }