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