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);
 | |
|     }
 | |
| }
 |