package com.novelbook.android.Fragments; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import com.novelbook.android.MarkActivity; import com.novelbook.android.R; import com.novelbook.android.ReadActivity; import com.novelbook.android.adapter.MarkAdapter; import com.novelbook.android.db.BookMarks; import com.novelbook.android.db.Novel; import com.novelbook.android.utils.PageFactory; import com.umeng.analytics.MobclickAgent; import org.litepal.LitePal; import java.util.ArrayList; import java.util.List; import butterknife.BindView; /** * Created by Administrator on 2016/8/31 0031. */ public class BookMarkFragment extends BasicFragment implements MarkActivity.Sortmark{ public static final String TAG=BookMarkFragment.class.getSimpleName(); public static final String ARGUMENT = "argument"; @BindView(R.id.lv_bookmark) ListView lv_bookmark; private int novelId; private String mArgument; private List bookMarksList; private MarkAdapter markAdapter; private PageFactory pageFactory; @Override protected int getLayoutRes() { return R.layout.fragment_bookmark; } @Override protected void initData() { Bundle bundle = getArguments(); if (bundle != null) { novelId = bundle.getInt(ARGUMENT); } bookMarksList = new ArrayList<>(); if(pageFactory.getNovle().isLocalBook()){ bookMarksList = LitePal.where("novelId =?", novelId + "").order(String.format("id %s", isAsc ? "asc" : "desc")).find(BookMarks.class); }else { String domain = pageFactory.getSite().getDomain(); if (TextUtils.isEmpty(domain)) { Novel nv = LitePal.find(Novel.class, novelId); if (nv != null) { domain = nv.getDomain(); } } if (null != domain || !TextUtils.isEmpty(domain)) { bookMarksList = LitePal.where("novelId = ? and domain= ?", novelId + "", domain).order(String.format("id %s", isAsc ? "asc" : "desc")).find(BookMarks.class); } } Log.d(TAG, "initData: bookmark size " +bookMarksList.size()); markAdapter = new MarkAdapter(getActivity(), bookMarksList); lv_bookmark.setAdapter(markAdapter); } @Override protected void fillData() { } protected void processArguments(){ if (getArguments() != null) { Bundle bundle = getArguments() ; } } @Override protected void initListener() { pageFactory = PageFactory.getInstance(activity.getApplicationContext()); lv_bookmark.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { // if( pageFactory.getmAd()==null){ showProgressDialog(true,"正在加载"); Novel nv = LitePal.find(Novel.class,novelId); nv.setLastReadChapt(bookMarksList.get(position).getChapt()); nv.setLastReadPos(bookMarksList.get(position).getBegin()); nv.update(novelId); // pageFactory.prepareBook(nv ); //打开本地小说内容 // Log.d(TAG, String.format("prepare book %s 开始open book.",nv.getName()) ); ReadActivity.openBook(nv ,activity); handler.sendEmptyMessage(99); /* }else{ pageFactory.openBookmark(bookMarksList.get(position).getChapt(),bookMarksList.get(position).getBegin()); }*/ getActivity().finish(); } }); lv_bookmark.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView parent, View view, final int position, long id) { new AlertDialog.Builder(getActivity()) .setTitle("提示") .setMessage("是否删除书签?") .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .setPositiveButton("删除", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { LitePal.delete(BookMarks.class,bookMarksList.get(position).getId()); bookMarksList.clear(); bookMarksList.addAll(LitePal.where("novelId = ?", novelId+"").find(BookMarks.class)); markAdapter.notifyDataSetChanged(); } }).setCancelable(true).show(); return false; } }); } @Override protected void initViews() { ((MarkActivity) getActivity()).setSortmark(this); } @Override public void setFTag() { } /** * 用于从Activity传递数据到Fragment * @param * @return */ public static BookMarkFragment newInstance(int novelId) { Bundle bundle = new Bundle(); bundle.putInt(ARGUMENT, novelId); BookMarkFragment bookMarkFragment = new BookMarkFragment(); bookMarkFragment.setArguments(bundle); return bookMarkFragment; } boolean isAsc = true; @Override public void sortList() { isAsc =!isAsc; initData(); } @Override public void refresh() { } @Override public void onResume() { super.onResume(); MobclickAgent.onPageStart(TAG); } @Override public void onPause(){ super.onPause(); MobclickAgent.onPageEnd(TAG); } }