working on network
This commit is contained in:
		
							parent
							
								
									90af9bbce2
								
							
						
					
					
						commit
						bd17a920c0
					
				|  | @ -33,6 +33,7 @@ import com.novelbook.android.netutils.OnSuccessAndFaultListener; | |||
| import com.novelbook.android.netutils.OnSuccessAndFaultSub; | ||||
| import com.novelbook.android.utils.BookUtil; | ||||
| import com.novelbook.android.utils.GsonUtil; | ||||
| import com.novelbook.android.utils.MyImageLoader; | ||||
| import com.novelbook.android.utils.NovelParseUtil; | ||||
| import com.novelbook.android.utils.PageFactory; | ||||
| import com.youth.banner.loader.ImageLoader; | ||||
|  | @ -125,8 +126,12 @@ public class BookActivity extends   Activity_base { | |||
| 
 | ||||
|     @Override | ||||
|     protected void setTitle() { | ||||
|         String title = getIntent().getStringExtra("BOOKNAME"); | ||||
|         this.setTitle(title); | ||||
|        // String title = getIntent().getStringExtra("BOOKNAME"); | ||||
|      //   this.setTitle(title); | ||||
| 
 | ||||
|         int bookId = getIntent().getIntExtra("bookId",0); | ||||
|       //  this.setTitle("bookName"); | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|  | @ -146,9 +151,10 @@ public class BookActivity extends   Activity_base { | |||
| 
 | ||||
|     private void setBookInfo() { | ||||
|     } | ||||
|     private MyLoader loader = new MyLoader(); | ||||
|     private MyImageLoader loader = new MyImageLoader(); | ||||
|     public void setBookDetailInfo(  ){ | ||||
|         setShelfButtonText(); | ||||
|         this.setTitle(mNovel.getName());//why not apply | ||||
|         this.txtAuth.setText(mNovel.getAuthor()); | ||||
|         this.txtCategory.setText(mNovel.getNovelType()); | ||||
|         this.txtDesc.setText(mNovel.getDescription()); | ||||
|  | @ -156,7 +162,6 @@ public class BookActivity extends   Activity_base { | |||
|         this.txtDesc2.setText(mNovel.getDescription()); | ||||
|         this.txtLatestCate.setText(mNovel.getLastestChapterName()); | ||||
|         if(mNovel.getLastUpateTime()>0){ | ||||
|            ; | ||||
|             this.txtLatestCate.setText(  new Date(mNovel.getLastUpateTime()).toString()  +"\n"+txtLatestCate.getText()); | ||||
|         } | ||||
| 
 | ||||
|  | @ -170,12 +175,7 @@ public class BookActivity extends   Activity_base { | |||
| 
 | ||||
| 
 | ||||
|     } | ||||
|     private class MyLoader extends ImageLoader { | ||||
|         @Override | ||||
|         public void displayImage(Context context, Object path, ImageView imageView) { | ||||
|             Glide.with(context).load((String) path).into(imageView); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     void setShelfButtonText(){ | ||||
|         String title = mNovel.isOnShelf()?"移除书架":"加入书架"; | ||||
|         btnShelf.setText(title); | ||||
|  | @ -283,30 +283,7 @@ public class BookActivity extends   Activity_base { | |||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     void getMuluInfo(){ | ||||
|         BookSubscribe.getNovelSites(novelId,new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() { | ||||
|             @Override | ||||
|             public void onSuccess(String result) { | ||||
|                 //成功 | ||||
|                 try { | ||||
| 
 | ||||
|                     NovelSites nvs = (NovelSites) gson.fromJson(result,NovelSites.class); | ||||
|                     pageFactory.prepareBook(mNovel,nvs,BookActivity.this); | ||||
| 
 | ||||
|                 } catch ( Exception e) { | ||||
|                     e.printStackTrace(); | ||||
|                 } | ||||
| 
 | ||||
|                 Toast.makeText(BookActivity.this,"getMuluInfo 请求成功 "  ,Toast.LENGTH_SHORT).show(); | ||||
|             } | ||||
| 
 | ||||
|             @Override | ||||
|             public void onFault(String errorMsg) { | ||||
|                 //失败 | ||||
|                 Toast.makeText(BookActivity.this,"getMuluInfo 请求失败"+errorMsg,Toast.LENGTH_SHORT).show(); | ||||
|             } | ||||
|         },BookActivity.this)); | ||||
|     } | ||||
| 
 | ||||
|     void getBookInfo(){ | ||||
| 
 | ||||
|  | @ -322,47 +299,36 @@ public class BookActivity extends   Activity_base { | |||
|                 nv = gson.fromJson(result,Novel.class); | ||||
|               //   nv = GsonUtil.getNovel(result); | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|                 if(!isLocalDbExist){ | ||||
|                  //  nv.saveAsync(); | ||||
|                     nv.save (); | ||||
| 
 | ||||
|                 }else{ | ||||
| 
 | ||||
|                     List<Novel> nvs = LitePal.where("novelId=?",novelId).find(Novel.class); | ||||
|                     for (Novel novel:nvs | ||||
|                     ) { | ||||
|                         Log.d(TAG,String.format("novel id %s before update: lastUpdateTime: %s",novel.getId(),novel.getLastUpateTime())); | ||||
|                     } | ||||
| 
 | ||||
|                   //  nv.setLastUpateTime(new Date().getTime()); | ||||
|                     nv.updateAll("novelId=?",novelId); | ||||
| 
 | ||||
|                     nvs = LitePal.where("novelId=?",novelId).find(Novel.class); | ||||
| 
 | ||||
|                     for (Novel novel:nvs | ||||
|                     ) { | ||||
|                         Log.d(TAG,String.format("novel id %s after update: lastUpdateTime: %s",novel.getId(),novel.getLastUpateTime())); | ||||
|                 } | ||||
|                 } | ||||
| 
 | ||||
|                 List<Novel> nvs = LitePal.where("novelId=?",novelId).find(Novel.class); | ||||
| 
 | ||||
|                 if(nvs.size()>0) { | ||||
|                     mNovel = nvs.get(0); | ||||
|                 mNovel = Novel.getNovelBySvrId(novelId); | ||||
|                 if(null != mNovel) { | ||||
|                     handler.sendEmptyMessage(1); | ||||
|                 } | ||||
| 
 | ||||
|                getMuluInfo(); | ||||
|                 Toast.makeText(BookActivity.this,"Novel 请求成功:"+result,Toast.LENGTH_SHORT).show(); | ||||
|                 pageFactory.prepareBook(mNovel, BookActivity.this); | ||||
| 
 | ||||
|                // Toast.makeText(BookActivity.this,"Novel 请求成功:"+result,Toast.LENGTH_SHORT).show(); | ||||
|             } | ||||
| 
 | ||||
|             @Override | ||||
|             public void onFault(String errorMsg) { | ||||
|                 //失败 | ||||
|                 Toast.makeText(BookActivity.this,"Novel 请求失败:"+errorMsg,Toast.LENGTH_SHORT).show(); | ||||
|                 mNovel = Novel.getNovelBySvrId(novelId); | ||||
|                 if(null != mNovel) { | ||||
|                     handler.sendEmptyMessage(1); | ||||
|                     pageFactory.prepareBook(mNovel, BookActivity.this); | ||||
|                 } | ||||
| 
 | ||||
| 
 | ||||
|             } | ||||
|         },BookActivity.this)); | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,6 +6,7 @@ import android.content.Context; | |||
| import android.content.DialogInterface; | ||||
| import android.content.Intent; | ||||
| import android.content.res.Resources; | ||||
| import android.graphics.pdf.PdfDocument; | ||||
| import android.net.Uri; | ||||
| import android.os.Bundle; | ||||
| import android.support.annotation.Nullable; | ||||
|  | @ -26,6 +27,7 @@ import android.widget.LinearLayout; | |||
| import android.widget.TextView; | ||||
| import android.widget.Toast; | ||||
| 
 | ||||
| import com.google.gson.Gson; | ||||
| import com.novelbook.android.Activity_paihangbang; | ||||
| import com.novelbook.android.Activity_shudan; | ||||
| import com.novelbook.android.BookActivity; | ||||
|  | @ -33,9 +35,14 @@ import com.novelbook.android.R; | |||
| import com.novelbook.android.ReadActivity; | ||||
| import com.novelbook.android.adapter.BookListAdapter; | ||||
| import com.novelbook.android.db.Novel; | ||||
| import com.novelbook.android.netsubscribe.BookSubscribe; | ||||
| import com.novelbook.android.netutils.OnSuccessAndFaultListener; | ||||
| import com.novelbook.android.netutils.OnSuccessAndFaultSub; | ||||
| import com.novelbook.android.utils.OnItemClickListener; | ||||
| import com.novelbook.android.utils.PageFactory; | ||||
| 
 | ||||
| import org.litepal.LitePal; | ||||
| import org.w3c.dom.Text; | ||||
| 
 | ||||
| import java.io.File; | ||||
| import java.lang.reflect.Field; | ||||
|  | @ -57,6 +64,7 @@ public abstract class BasicFragment extends Fragment { | |||
|     protected abstract void initData(); | ||||
|     protected   void initListener(){} | ||||
|     protected abstract void initViews(); | ||||
|     protected Gson gson = new Gson(); | ||||
|    // Main2Activity activity; | ||||
|     FragmentActivity activity; | ||||
| 
 | ||||
|  | @ -129,11 +137,39 @@ public abstract class BasicFragment extends Fragment { | |||
| 
 | ||||
|     void showBookDetail(int id) { | ||||
|         Intent intent = new Intent(activity, BookActivity.class); | ||||
|         intent.putExtra("BOOKNAME",id); | ||||
|         intent.putExtra("bookId",id); | ||||
|         startActivity(intent); | ||||
|     } | ||||
| 
 | ||||
|     void getBookInfo(Novel novel){ | ||||
|         String novelId = novel.getNovelId(); | ||||
|         long id = novel.getId(); | ||||
| 
 | ||||
| 
 | ||||
|         BookSubscribe.getNovel(novel.getNovelId(),new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() { | ||||
|             @Override | ||||
|             public void onSuccess(String result) { | ||||
|                 //成功 | ||||
| 
 | ||||
|                 Novel nv ; | ||||
|                 nv = gson.fromJson(result,Novel.class); | ||||
|                 nv.update(id); | ||||
| 
 | ||||
|                 nv= LitePal.find(Novel.class,id); | ||||
| 
 | ||||
|                 PageFactory.getInstance().prepareBook(nv, getActivity()); | ||||
| 
 | ||||
|             } | ||||
| 
 | ||||
|             @Override | ||||
|             public void onFault(String errorMsg) { | ||||
|                 //失败 | ||||
|                 Toast.makeText(getActivity(),"Novel 请求失败:"+errorMsg,Toast.LENGTH_SHORT).show(); | ||||
|                 PageFactory.getInstance().prepareBook(novel, getActivity()); //打开本地小说内容 | ||||
|             } | ||||
|         },getActivity())); | ||||
| 
 | ||||
|     } | ||||
|     void openBook(Novel book, BookListAdapter mAdapter) { | ||||
| 
 | ||||
|         //从新从数据库抓取该书的最新阅读进度 | ||||
|  | @ -145,14 +181,15 @@ public abstract class BasicFragment extends Fragment { | |||
|         } | ||||
|         Toast.makeText(activity, book.getName() + "加载",  Toast.LENGTH_SHORT).show(); | ||||
| 
 | ||||
|         final String path = book.getNovelPath(); | ||||
|         if(null ==path) { | ||||
|           List<Novel>  bookLists = LitePal.findAll(Novel.class); | ||||
|           if(bookLists.size()>0) { | ||||
|            openBook(bookLists.get(0),null); | ||||
|           } | ||||
|        if(!book.isLocalBook()){ | ||||
|             getBookInfo(book); | ||||
|             ReadActivity.openBook(book ,activity); | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         final String path = book.getNovelPath(); | ||||
| 
 | ||||
|         File file = new File(path); | ||||
|         if (!file.exists()){ | ||||
|             new AlertDialog.Builder(activity) | ||||
|  | @ -161,12 +198,17 @@ public abstract class BasicFragment extends Fragment { | |||
|                     .setPositiveButton("删除", new DialogInterface.OnClickListener() { | ||||
|                         @Override | ||||
|                         public void onClick(DialogInterface dialog, int which) { | ||||
|                             LitePal.deleteAll(Novel.class, "bookpath = ?", path); | ||||
|                             if(mAdapter!=null) {mAdapter.setBookList( LitePal.findAll(Novel.class));} | ||||
|                             LitePal.deleteAll(Novel.class, "id = ?", book.getId()+""); | ||||
|                             if(mAdapter!=null) {mAdapter.setBookList( LitePal.where("isOnShelf=?","1").find(Novel.class));} | ||||
|                         } | ||||
|                     }).setCancelable(true).show(); | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|         ReadActivity.openBook(book ,activity); | ||||
| 
 | ||||
|     } | ||||
|  |  | |||
|  | @ -85,8 +85,8 @@ public class Fragment_Shelf extends BasicFragment { | |||
|         flag = new boolean[100]; | ||||
|        // mDatas = initData(mDatas,'X'); | ||||
| 
 | ||||
|         bookLists = LitePal.where("isOnShelf=? or novelId=? ","1","").find(Novel.class); | ||||
| 
 | ||||
|        // bookLists = LitePal.where("isOnShelf=? or novelId=? ","1","").find(Novel.class); | ||||
|         bookLists = LitePal.where("isOnShelf=? ","1" ).find(Novel.class); | ||||
| 
 | ||||
| 
 | ||||
|         mAdapter = new BookListAdapter(activity,bookLists,R.layout.recycle_list_item,new OnItemClickListener() | ||||
|  |  | |||
|  | @ -2,12 +2,14 @@ package com.novelbook.android.adapter; | |||
| 
 | ||||
| import android.content.Context; | ||||
| import android.support.v7.widget.RecyclerView; | ||||
| import android.text.TextUtils; | ||||
| import android.view.LayoutInflater; | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
| 
 | ||||
| import com.novelbook.android.db.Novel; | ||||
| 
 | ||||
| import com.novelbook.android.utils.MyImageLoader; | ||||
| import com.novelbook.android.utils.OnItemClickListener; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
|  | @ -17,7 +19,7 @@ public  class BookListAdapter extends RecyclerView.Adapter< MyViewHolder> { | |||
|     private final int EMPTY_VIEW = 1; | ||||
|     private final int PROGRESS_VIEW = 2; | ||||
|     private final int IMAGE_VIEW = 3; | ||||
| 
 | ||||
|     private MyImageLoader loader = new MyImageLoader(); | ||||
|     private Context context; | ||||
|     private List<Novel> mDatas  ; | ||||
|     private OnItemClickListener mOnItemClickListener; | ||||
|  | @ -84,6 +86,9 @@ public  class BookListAdapter extends RecyclerView.Adapter< MyViewHolder> { | |||
|         if (holder.tvAuthor != null) holder.tvAuthor.setText(mDatas.get(position).getAuthor()); | ||||
|         if (holder.tvCate != null) holder.tvCate.setText(mDatas.get(position).getNovelType()); | ||||
|         if (holder.tvDesc != null) holder.tvDesc.setText(mDatas.get(position).getDescription()); | ||||
|         if (holder.imageView != null && !TextUtils.isEmpty(mDatas.get(position).getCover())) { | ||||
|             loader.displayImage(context,mDatas.get(position).getCover(),holder.imageView); | ||||
|         } | ||||
|         if(holder.tvNum!=null)holder.tvNum.setText("999"); | ||||
|         // 如果设置了回调,则设置点击事件 | ||||
|         if (mOnItemClickListener != null) { | ||||
|  |  | |||
|  | @ -1,10 +1,15 @@ | |||
| package com.novelbook.android.db; | ||||
| 
 | ||||
| 
 | ||||
| import android.text.TextUtils; | ||||
| 
 | ||||
| import org.litepal.LitePal; | ||||
| import org.litepal.annotation.Column; | ||||
| import org.litepal.crud.LitePalSupport; | ||||
| import org.w3c.dom.Text; | ||||
| 
 | ||||
| import java.io.Serializable; | ||||
| import java.util.List; | ||||
| 
 | ||||
| 
 | ||||
| public class Novel extends LitePalSupport implements Serializable{ | ||||
|  | @ -173,4 +178,26 @@ public class Novel extends LitePalSupport implements Serializable{ | |||
|     public void setFinished(boolean finished) { | ||||
|         isFinished = finished; | ||||
|     } | ||||
| 
 | ||||
|     public boolean isLocalBook(){ | ||||
|         return TextUtils.isEmpty(novelId); | ||||
|     } | ||||
|     public static Novel getNovelBySvrId(String novelId){ | ||||
| 
 | ||||
|         List<Novel> nvs =  LitePal.where("novelId=?",novelId).limit(1).find(Novel.class); | ||||
|         if(nvs.size()>0){ | ||||
|             return nvs.get(0); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|     public static List<Novel> getNovelsOnShelf(){ | ||||
| 
 | ||||
|       return  LitePal.where("isOnShelf=?","1").find(Novel.class); | ||||
| 
 | ||||
|     } | ||||
|     public static List<Novel> getLocalNovels(){ | ||||
| 
 | ||||
|         return  LitePal.where("novelPath !=? ","").find(Novel.class); | ||||
| 
 | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -289,7 +289,7 @@ public class DirectoryFragment extends Fragment implements View.OnClickListener | |||
|     @Override | ||||
|     public void onResume() { | ||||
|         super.onResume(); | ||||
|         bookLists = LitePal.where("isOnShelf=?","1").find(  Novel.class); | ||||
|         bookLists = Novel.getLocalNovels(); // LitePal.where("isOnShelf=?","1").find(  Novel.class); | ||||
|         listAdapter.notifyDataSetChanged(); | ||||
|     } | ||||
| 
 | ||||
|  | @ -391,7 +391,7 @@ public class DirectoryFragment extends Fragment implements View.OnClickListener | |||
|                 case SUCCESS: | ||||
|                     msg = "导入书本成功"; | ||||
|                     checkItems.clear(); | ||||
|                     bookLists = LitePal.where("isOnShelf=?","1").find(  Novel.class);//LitePal.findAll(Novel.class); | ||||
|                     bookLists = Novel.getLocalNovels();//LitePal.where("isOnShelf=?","1").find(  Novel.class);//LitePal.findAll(Novel.class); | ||||
|                     listAdapter.notifyDataSetChanged(); | ||||
|                     changgeCheckBookNum(); | ||||
|                     break; | ||||
|  |  | |||
|  | @ -13,6 +13,7 @@ import android.util.Log; | |||
| import android.widget.Toast; | ||||
| 
 | ||||
| import com.google.gson.Gson; | ||||
| import com.novelbook.android.BookActivity; | ||||
| import com.novelbook.android.MyApp; | ||||
| import com.novelbook.android.bean.Cache; | ||||
| import com.novelbook.android.bean.NovelSites; | ||||
|  | @ -121,15 +122,45 @@ public class BookUtil { | |||
|                 break; | ||||
|             } | ||||
|         } | ||||
|         getSiteRule(); | ||||
|     } | ||||
| 
 | ||||
|     private void setSiteInfo() { | ||||
| 
 | ||||
|         File file = new File(getChapterPath() +mSite.getDomain()); | ||||
|         if(!file.exists()){ | ||||
|             file.mkdir(); | ||||
|         } | ||||
| 
 | ||||
|         getSiteRule(); | ||||
|         mNovel.setDomain(mSite.getDomain()); | ||||
|         mNovel.setMuluUrl(mSite.getMuluUrl()); | ||||
|         mNovel.save(); | ||||
|     } | ||||
| 
 | ||||
|    public void getTargetSites(){ | ||||
|         BookSubscribe.getNovelSites(mNovel.getNovelId(),new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() { | ||||
|             @Override | ||||
|             public void onSuccess(String result) { | ||||
|                 //成功 | ||||
|                 try { | ||||
| 
 | ||||
|                     NovelSites nvs = (NovelSites) gson.fromJson(result,NovelSites.class); | ||||
|                     //pageFactory.prepareBook(mNovel,nvs, BookActivity.this); | ||||
|                     setNovelSites(nvs); | ||||
| 
 | ||||
|                 } catch ( Exception e) { | ||||
|                     e.printStackTrace(); | ||||
|                 } | ||||
| 
 | ||||
|                 Toast.makeText(mContext,"getMuluInfo 请求成功 "  ,Toast.LENGTH_SHORT).show(); | ||||
|             } | ||||
| 
 | ||||
|             @Override | ||||
|             public void onFault(String errorMsg) { | ||||
|                 //失败 | ||||
|                 Toast.makeText(mContext,"getMuluInfo 请求失败"+errorMsg,Toast.LENGTH_SHORT).show(); | ||||
|             } | ||||
|         },mContext)); | ||||
|     } | ||||
|     private void getSiteRule() { | ||||
|         mSiteRule = null; | ||||
|         BookSubscribe.getSiteRule(mSite.getDomain(),new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() { | ||||
|  | @ -148,7 +179,7 @@ public class BookUtil { | |||
|                     sr.save(); | ||||
|                 } | ||||
|                 mSiteRule =sr; | ||||
| 
 | ||||
|                 setSiteInfo(); | ||||
|                readChaptersAsync(); | ||||
| 
 | ||||
| 
 | ||||
|  | @ -157,10 +188,17 @@ public class BookUtil { | |||
|             @Override | ||||
|             public void onFault(String errorMsg) { | ||||
|                 //失败 | ||||
| 
 | ||||
|             Log.d(TAG,"error on get sitRule: "+errorMsg); | ||||
|             } | ||||
|         },mContext)); | ||||
| 
 | ||||
|         /* | ||||
|         if(mSiteRule==null && mSite!=null) { | ||||
|             List<SiteRule> srs = LitePal.where("domain=?", mSite.getDomain()).find(SiteRule.class); | ||||
|             if (srs.size() > 0) { | ||||
|                 mSiteRule = srs.get(0); | ||||
|             } | ||||
|         }*/ | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|  | @ -222,7 +260,7 @@ public class BookUtil { | |||
|         boolean isLocalImport = TextUtils.isEmpty( novel.getNovelId()); | ||||
|         boolean isOnShelf = isLocalImport || novel.isOnShelf(); | ||||
|         boolean isLoadChaptsFromRemote = !isLocalImport ;// && !novel.isFinished() ; //是否从目标网站下载目录 | ||||
| 
 | ||||
|         showProgressDialog(); | ||||
|         if(isLocalImport) { | ||||
| 
 | ||||
|             mChapters = LitePal.where("novelId=?", mNovel.getId() + "").find(Chapter.class); | ||||
|  | @ -243,14 +281,18 @@ public class BookUtil { | |||
|             } | ||||
|         }else{ //读取目录列表 | ||||
|             MuluStatus m = mMuluStatus; | ||||
|             Log.d(TAG,String.format("mulu on Site %s download status %s",mSite.getDomain(),mMuluStatus)); | ||||
|           //  Log.d(TAG,String.format("mulu on Site %s download status %s",mSite.getDomain(),mMuluStatus)); | ||||
| 
 | ||||
|             while(mMuluStatus == MuluStatus.isDownloading){ | ||||
|                 Thread.sleep(50); | ||||
|                 Log.d(TAG,String.format("waiting for mulu downloading ,mMuluStatus %s" ,mMuluStatus)); | ||||
|                 if(mMuluStatus == MuluStatus.failed){ | ||||
|                     throw new RuntimeException("读取资源失败,请检查网络"); | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         dismissProgressDialog(); | ||||
|     } | ||||
| 
 | ||||
|    // String getMuluUrl() { | ||||
|  | @ -298,7 +340,7 @@ public class BookUtil { | |||
|             @Override | ||||
|             public void onFailure(Call call, IOException e) { | ||||
|                 Log.d(TAG, "onFailure: " + e.getMessage()); | ||||
|                 if( mNovelSites.getSites().length ==1){ | ||||
|                 if( mNovelSites.getSites().length ==1){ //仅有一个rule,且失败了 | ||||
|                     mMuluStatus = MuluStatus.failed; | ||||
|                     return; | ||||
|                 } | ||||
|  | @ -317,6 +359,10 @@ public class BookUtil { | |||
|             @Override | ||||
|             public void onResponse(Call call, Response response){ | ||||
|                 ResponseBody body = response.body(); | ||||
|                 if(response.code()!=200){ | ||||
|                     mMuluStatus = MuluStatus.failed; | ||||
|                     return; | ||||
|                 } | ||||
|                 if (body != null) { | ||||
| 
 | ||||
|                     try { | ||||
|  | @ -704,9 +750,9 @@ public class BookUtil { | |||
|         return cachedPath + mNovel.getName() + index ; | ||||
|     } | ||||
|     protected String fileChapterName(int chaptId ) { | ||||
|         if(mSite!=null){ | ||||
|         if(TextUtils.isEmpty(mNovel.getDomain())){ | ||||
| 
 | ||||
|             return  getChapterPath() +mSite.getDomain()+"/"+ chaptId ; | ||||
|             return  getChapterPath() +mNovel.getDomain()+"/"+ chaptId ; | ||||
|         } | ||||
|         return   getChapterPath() + chaptId ; | ||||
|     } | ||||
|  | @ -789,18 +835,25 @@ public class BookUtil { | |||
| 
 | ||||
|                 if(!file.exists()) { | ||||
| 
 | ||||
|                     if(mChapters ==null || mChapters.size() ==0){ | ||||
|                         String error = "网络错误"; | ||||
|                         return  error.toCharArray(); | ||||
|                     } | ||||
| 
 | ||||
|                     Log.d(TAG,String.format("loadChaptContent----start %s"  ,new Date().toString() )); | ||||
| 
 | ||||
|                     loadChaptContent(index); | ||||
| 
 | ||||
|                      showProgressDialog();//why not show | ||||
|                  //    showProgressDialog();//why not show | ||||
| 
 | ||||
|                     int slepttime =0; | ||||
|                     while(!isDownloadChapt){ | ||||
|                         Thread.sleep(50); | ||||
|                         slepttime+=50; | ||||
|                         Log.d(TAG,String.format("loadChaptContent slept %s for downloading  ",slepttime   )   ); | ||||
|                     } | ||||
|                     dismissProgressDialog(); | ||||
|                     Log.d(TAG,String.format("loadChaptContent slept %s for downloading %s ",slepttime,  mChapters.get(index -1).getChapterName()   )); | ||||
|                 //    dismissProgressDialog(); | ||||
|                    // Log.d(TAG,String.format("loadChaptContent slept %s for downloading %s ",slepttime,  mChapters.get(index -1).getChapterName()   )); | ||||
|                 } | ||||
| 
 | ||||
|                 if(!file.exists()) { | ||||
|  | @ -856,9 +909,7 @@ private void loadChaptContent(int index) throws JSONException, InterruptedExcept | |||
|                         2. 查询主服务器,若有地址更新则更新本地信息,并重复1,若没有更新地址,则地址无效,返回章节内容正待手打 | ||||
|                     */ | ||||
|     // | ||||
|     if(mChapters ==null || mChapters.size() ==0){ | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     Chapter chapter = mChapters.get(index -1); | ||||
|     String url = chapter.getChapterUrl(); | ||||
|     if( TextUtils.isEmpty( url)){ | ||||
|  |  | |||
|  | @ -0,0 +1,14 @@ | |||
| package com.novelbook.android.utils; | ||||
| 
 | ||||
| import android.content.Context; | ||||
| import android.widget.ImageView; | ||||
| 
 | ||||
| import com.bumptech.glide.Glide; | ||||
| 
 | ||||
| public class MyImageLoader extends com.youth.banner.loader.ImageLoader { | ||||
|         @Override | ||||
|         public void displayImage(Context context, Object path, ImageView imageView) { | ||||
|             Glide.with(context).load((String) path).into(imageView); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|  | @ -508,17 +508,14 @@ public class PageFactory { | |||
|         currentPage = cancelPage; | ||||
|     } | ||||
| 
 | ||||
|     public void prepareBook(Novel book,NovelSites nvs,Context context){ | ||||
|     public void prepareBook(Novel book, Context context){ | ||||
|         if(mBook!=null &&mBook.getNovelId() !=book.getNovelId()){ //取消未上本书完成的web请求,待验证效果 | ||||
|             NetUtil.cancelRequest(mBook.getNovelId()); | ||||
|         } | ||||
|         mBookUtil = new BookUtil(); | ||||
|         this.mBookUtil.setContext(context); | ||||
|         this.mBookUtil.setNovel(book); | ||||
|         this.mBookUtil.setNovelSites(nvs); | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|         this.mBookUtil.getTargetSites(); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|  | @ -526,10 +523,11 @@ public class PageFactory { | |||
|      * @throws IOException | ||||
|      */ | ||||
|     public void openBook(Novel book ,Context context) throws IOException { | ||||
|         if(null ==mBookUtil || !TextUtils.isEmpty(book.getNovelPath())  ){ //离线书籍重新初始化加载mBookUtil | ||||
|          if(book.isLocalBook() ){ //离线书籍重新初始化加载mBookUtil | ||||
|                 mBookUtil = new BookUtil(); | ||||
|                 mBookUtil.setContext(context); | ||||
|           } | ||||
| 
 | ||||
|         //清空数据 | ||||
|         currentChapter = 0; | ||||
| //        m_mbBufLen = 0; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue