192 lines
6.1 KiB
Plaintext
192 lines
6.1 KiB
Plaintext
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<BookMarks> 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);
|
|
}
|
|
}
|