网络超时处理
This commit is contained in:
parent
9f964f1e31
commit
7af2c38a0f
|
@ -71,7 +71,7 @@ public class Activity_ChgSource extends Activity_base {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void initData() {
|
protected void initData() {
|
||||||
pageFactory =PageFactory.getInstance();
|
pageFactory =PageFactory.getInstance(getApplicationContext());
|
||||||
mSites = new ArrayList<Site>(Arrays.asList(pageFactory.getNovelSites().getSites()));
|
mSites = new ArrayList<Site>(Arrays.asList(pageFactory.getNovelSites().getSites()));
|
||||||
SiteAdapter mAdapter = new SiteAdapter(this, mSites, R.layout.recycle_list_one_item, new OnItemClickListener() {
|
SiteAdapter mAdapter = new SiteAdapter(this, mSites, R.layout.recycle_list_one_item, new OnItemClickListener() {
|
||||||
|
|
||||||
|
|
|
@ -196,7 +196,7 @@ public class BookActivity extends Activity_base {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
checkPermission(BookActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE, EXTERNAL_STORAGE_REQ_CODE, "添加图书需要此权限,请允许");
|
checkPermission(BookActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE, EXTERNAL_STORAGE_REQ_CODE, "添加图书需要此权限,请允许");
|
||||||
}
|
}
|
||||||
pageFactory = PageFactory.getInstance();
|
pageFactory = PageFactory.getInstance(getApplicationContext());
|
||||||
// pageFactory.clear();
|
// pageFactory.clear();
|
||||||
setBookInfo();//set title ,data from novel list
|
setBookInfo();//set title ,data from novel list
|
||||||
NetUtil.cancelRequest(mNovel.getNovelId());
|
NetUtil.cancelRequest(mNovel.getNovelId());
|
||||||
|
@ -686,7 +686,7 @@ void onResponseProcess( String content ,String url){
|
||||||
if(mNovel!=null && mNovel.getId()>0) {
|
if(mNovel!=null && mNovel.getId()>0) {
|
||||||
mNovel = LitePal.find(Novel.class, mNovel.getId()); //更新最新进度
|
mNovel = LitePal.find(Novel.class, mNovel.getId()); //更新最新进度
|
||||||
if(pageFactory==null){
|
if(pageFactory==null){
|
||||||
pageFactory = PageFactory.getInstance();
|
pageFactory = PageFactory.getInstance(getApplicationContext());
|
||||||
}
|
}
|
||||||
if(( pageFactory.getNovle()==null || mNovel.getId() !=pageFactory.getNovle().getId())){
|
if(( pageFactory.getNovle()==null || mNovel.getId() !=pageFactory.getNovle().getId())){
|
||||||
pageFactory.prepareBook(mNovel);
|
pageFactory.prepareBook(mNovel);
|
||||||
|
|
|
@ -226,7 +226,7 @@ public abstract class BasicFragment extends Fragment {
|
||||||
}
|
}
|
||||||
}.start();*/
|
}.start();*/
|
||||||
|
|
||||||
PageFactory.getInstance().prepareBook(nv ); //打开本地小说内容
|
PageFactory.getInstance(activity.getApplicationContext()).prepareBook(nv ); //打开本地小说内容
|
||||||
|
|
||||||
Log.d(TAG, String.format("prepare book %s 开始open book.",nv.getName()) );
|
Log.d(TAG, String.format("prepare book %s 开始open book.",nv.getName()) );
|
||||||
ReadActivity.openBook(nv ,activity);
|
ReadActivity.openBook(nv ,activity);
|
||||||
|
@ -237,7 +237,7 @@ public abstract class BasicFragment extends Fragment {
|
||||||
public void onFault(String errorMsg) {
|
public void onFault(String errorMsg) {
|
||||||
//失败
|
//失败
|
||||||
Toast.makeText(getActivity(),"Novel 请求失败:"+errorMsg,Toast.LENGTH_SHORT).show();
|
Toast.makeText(getActivity(),"Novel 请求失败:"+errorMsg,Toast.LENGTH_SHORT).show();
|
||||||
PageFactory.getInstance().prepareBook(novel ); //打开本地小说内容
|
PageFactory.getInstance(activity.getApplicationContext()).prepareBook(novel ); //打开本地小说内容
|
||||||
ReadActivity.openBook(novel ,activity);
|
ReadActivity.openBook(novel ,activity);
|
||||||
}
|
}
|
||||||
},getActivity()));
|
},getActivity()));
|
||||||
|
|
|
@ -70,7 +70,7 @@ public class BookMarkFragment extends BasicFragment implements MarkActivity.Sor
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void initListener() {
|
protected void initListener() {
|
||||||
pageFactory = PageFactory.getInstance();
|
pageFactory = PageFactory.getInstance(activity.getApplicationContext());
|
||||||
lv_bookmark.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
lv_bookmark.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||||
|
|
|
@ -128,7 +128,7 @@ public class CatalogFragment extends BasicFragment implements MarkActivity.Sortc
|
||||||
|
|
||||||
showProgressDialog(false,"请稍等");
|
showProgressDialog(false,"请稍等");
|
||||||
|
|
||||||
pageFactory = PageFactory.getInstance();
|
pageFactory = PageFactory.getInstance(activity.getApplicationContext());
|
||||||
|
|
||||||
Log.d(TAG, String .format("prepare book: start to open book cate of %s" , pageFactory.getNovle().getName()));
|
Log.d(TAG, String .format("prepare book: start to open book cate of %s" , pageFactory.getNovle().getName()));
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.novelbook.android.Fragments;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
|
import android.support.design.widget.AppBarLayout;
|
||||||
import android.support.v4.widget.NestedScrollView;
|
import android.support.v4.widget.NestedScrollView;
|
||||||
import android.support.v7.widget.LinearLayoutManager;
|
import android.support.v7.widget.LinearLayoutManager;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
|
@ -71,7 +72,8 @@ final String TAG = Fragment_paihang.class.getSimpleName();
|
||||||
MultiLayout topic_layout1;
|
MultiLayout topic_layout1;
|
||||||
@BindView(R.id.topic_layout2)
|
@BindView(R.id.topic_layout2)
|
||||||
MultiLayout topic_layout2;
|
MultiLayout topic_layout2;
|
||||||
|
@BindView(R.id.app_bar)
|
||||||
|
AppBarLayout appBarLayout;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -136,6 +138,13 @@ final String TAG = Fragment_paihang.class.getSimpleName();
|
||||||
}
|
}
|
||||||
private void loadSearchData(){
|
private void loadSearchData(){
|
||||||
int pn = pageNo;
|
int pn = pageNo;
|
||||||
|
if(lstSex==null){
|
||||||
|
// getSearchTabTtitle();
|
||||||
|
// initTabs();
|
||||||
|
appBarLayout.setVisibility(View.GONE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
appBarLayout.setVisibility(View.VISIBLE);
|
||||||
String sex = lstSex.get(tab1Pos);
|
String sex = lstSex.get(tab1Pos);
|
||||||
String cate = lstNt.get(tab2Pos);
|
String cate = lstNt.get(tab2Pos);
|
||||||
if(pageNo==1) {
|
if(pageNo==1) {
|
||||||
|
@ -210,12 +219,18 @@ final String TAG = Fragment_paihang.class.getSimpleName();
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void initViews(){
|
public void initViews(){
|
||||||
/*
|
appBarLayout.setVisibility(View.GONE);
|
||||||
showProgressDialog(false,"加载。。。。");
|
if(lstNt==null) {
|
||||||
|
getSearchTabTtitle();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
initTabs();
|
||||||
|
}
|
||||||
|
//showProgressDialog(false,"加载。。。。");
|
||||||
new Thread(){
|
new Thread(){
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
Log.d(TAG, "changing Source: to get site rule" );
|
Log.d(TAG, "prepare book to load options for search" );
|
||||||
while(lstNt==null){
|
while(lstNt==null){
|
||||||
try {
|
try {
|
||||||
Thread.sleep(10);
|
Thread.sleep(10);
|
||||||
|
@ -223,14 +238,15 @@ final String TAG = Fragment_paihang.class.getSimpleName();
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// initTabs();
|
||||||
handler.sendEmptyMessage(2);
|
handler.sendEmptyMessage(2);
|
||||||
}
|
}
|
||||||
}.start();*/
|
}.start();
|
||||||
|
|
||||||
|
|
||||||
|
// getSearchTabTtitle();
|
||||||
//setScrollListner();
|
//setScrollListner();
|
||||||
initLoadMoreListener();
|
initLoadMoreListener();
|
||||||
initTabs();
|
//initTabs();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -247,11 +263,12 @@ final String TAG = Fragment_paihang.class.getSimpleName();
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
List<String> lstType = Arrays.asList(lstProgress);
|
||||||
topic_layout.initTabNames(lstNt) ;
|
topic_layout.initTabNames(lstNt) ;
|
||||||
topic_layout1.initTabNames( lstSex) ;
|
topic_layout1.initTabNames( lstSex) ;
|
||||||
topic_layout2.initTabNames(Arrays.asList(lstProgress)) ;
|
topic_layout2.initTabNames(lstType) ;
|
||||||
// topic_layout.initTabNames(lstNt);
|
// topic_layout.initTabNames(lstNt);
|
||||||
|
appBarLayout.setVisibility(View.VISIBLE);
|
||||||
topic_layout.setOnTabSelectListener(new MultiLayout.OnTabSelectListener() {
|
topic_layout.setOnTabSelectListener(new MultiLayout.OnTabSelectListener() {
|
||||||
@Override
|
@Override
|
||||||
public void select(TextView textView, int i, int i1) {
|
public void select(TextView textView, int i, int i1) {
|
||||||
|
@ -479,6 +496,47 @@ final String TAG = Fragment_paihang.class.getSimpleName();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void getSearchTabTtitle(){
|
||||||
|
BookSubscribe.getSearchTitles(new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(String result) {
|
||||||
|
|
||||||
|
// mFirstPage= gson.fromJson(result, FirstPage.class);
|
||||||
|
try {
|
||||||
|
|
||||||
|
Constants.lstSex = GsonUtil.parserStringBlocks(result,"sex");
|
||||||
|
Constants.lstNt =GsonUtil.parserStringBlocks(result,"nt");
|
||||||
|
// Constants.lstProgress =GsonUtil.parserProgressBlocks(result,"progress");
|
||||||
|
/* getActivity().runOnUiThread(new Runnable() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
initTabs(); // refresh ui 的操作代码
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
});*/
|
||||||
|
initTabs();
|
||||||
|
loadSearchData();
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.e(TAG, "onSuccess: prepare book",e );
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFault(String errorMsg) {
|
||||||
|
//失败
|
||||||
|
Log.d(TAG, "error on get firstpage: " + errorMsg);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
},getActivity()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -68,14 +68,14 @@ public class Main2Activity extends Activity_base
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
PageFactory.createPageFactory(this);
|
//PageFactory.createPageFactory(this);
|
||||||
app =(MyApp) getApplicationContext();
|
app =(MyApp) getApplicationContext();
|
||||||
// requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
|
// requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
|
||||||
config =Config.getInstance();
|
config =Config.getInstance();
|
||||||
// ButterKnife.bind(this);
|
// ButterKnife.bind(this);
|
||||||
|
|
||||||
initialSexOption();
|
initialSexOption();
|
||||||
getSearchTabTtitle();
|
// getSearchTabTtitle();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ public class MarkActivity extends Activity_base {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void initData() {
|
protected void initData() {
|
||||||
pageFactory = PageFactory.getInstance();
|
pageFactory = PageFactory.getInstance(getApplicationContext());
|
||||||
Log.d(TAG, "prepareBook: pagefactory.mbook is ?" + (pageFactory.getNovle() .getName()) );
|
Log.d(TAG, "prepareBook: pagefactory.mbook is ?" + (pageFactory.getNovle() .getName()) );
|
||||||
|
|
||||||
//config = Config.getInstance();
|
//config = Config.getInstance();
|
||||||
|
|
|
@ -15,7 +15,7 @@ public class MyApp extends Application {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
applicationContext = getApplicationContext();
|
applicationContext = getApplicationContext();
|
||||||
Config.createConfig(this);
|
Config.createConfig(this);
|
||||||
// PageFactory.createPageFactory(this);
|
PageFactory.createPageFactory(this);
|
||||||
|
|
||||||
|
|
||||||
// BlurKit.init(this);
|
// BlurKit.init(this);
|
||||||
|
|
|
@ -169,7 +169,7 @@ public class ReadActivity extends Activity_base implements SpeechSynthesizerLis
|
||||||
});
|
});
|
||||||
|
|
||||||
config = Config.getInstance();
|
config = Config.getInstance();
|
||||||
pageFactory = PageFactory.getInstance();
|
pageFactory = PageFactory.getInstance(getApplicationContext());
|
||||||
pageFactory.setAd(this);
|
pageFactory.setAd(this);
|
||||||
llTopAd.setVisibility(View.GONE);
|
llTopAd.setVisibility(View.GONE);
|
||||||
|
|
||||||
|
@ -688,6 +688,7 @@ public class ReadActivity extends Activity_base implements SpeechSynthesizerLis
|
||||||
// | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
// | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||||
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||||
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
|
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
|
||||||
|
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
|
||||||
);
|
);
|
||||||
pageFactory.setBusy(true);
|
pageFactory.setBusy(true);
|
||||||
}
|
}
|
||||||
|
@ -752,9 +753,9 @@ public class ReadActivity extends Activity_base implements SpeechSynthesizerLis
|
||||||
Animation topAnim = AnimationUtils.loadAnimation(this, R.anim.dialog_top_enter);
|
Animation topAnim = AnimationUtils.loadAnimation(this, R.anim.dialog_top_enter);
|
||||||
rl_bottom.startAnimation(topAnim);
|
rl_bottom.startAnimation(topAnim);
|
||||||
appbar.startAnimation(topAnim);
|
appbar.startAnimation(topAnim);
|
||||||
// ll_top.startAnimation(topAnim);
|
// ll_top.startAnimation(topAnim);// ll_top.setVisibility(View.VISIBLE);
|
||||||
rl_bottom.setVisibility(View.VISIBLE);
|
rl_bottom.setVisibility(View.VISIBLE);
|
||||||
// ll_top.setVisibility(View.VISIBLE);
|
|
||||||
appbar.setVisibility(View.VISIBLE);
|
appbar.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ public class MarkAdapter extends BaseAdapter {
|
||||||
public MarkAdapter(Context context, List<BookMarks> list) {
|
public MarkAdapter(Context context, List<BookMarks> list) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
this.list = list;
|
this.list = list;
|
||||||
pageFactory = PageFactory.getInstance();
|
pageFactory = PageFactory.getInstance(mContext);
|
||||||
config = config.getInstance();
|
config = config.getInstance();
|
||||||
typeface = config.getTypeface();
|
typeface = config.getTypeface();
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,15 +40,15 @@ public class HttpMethods {
|
||||||
public String TAG = "HttpMethods";
|
public String TAG = "HttpMethods";
|
||||||
public static final String CACHE_NAME = "ZHUIKE";
|
public static final String CACHE_NAME = "ZHUIKE";
|
||||||
//public static String BASE_URL = getBaseUrl();
|
//public static String BASE_URL = getBaseUrl();
|
||||||
private static final int DEFAULT_CONNECT_TIMEOUT = 30;
|
private static final int DEFAULT_CONNECT_TIMEOUT = 5;
|
||||||
private static final int DEFAULT_WRITE_TIMEOUT = 30;
|
private static final int DEFAULT_WRITE_TIMEOUT = 5;
|
||||||
private static final int DEFAULT_READ_TIMEOUT = 30;
|
private static final int DEFAULT_READ_TIMEOUT = 5;
|
||||||
private Retrofit retrofit;
|
private Retrofit retrofit;
|
||||||
private HttpApi httpApi;
|
private HttpApi httpApi;
|
||||||
/**
|
/**
|
||||||
* 请求失败重连次数
|
* 请求失败重连次数
|
||||||
*/
|
*/
|
||||||
private int RETRY_COUNT = 0;
|
private int RETRY_COUNT = 3;
|
||||||
private OkHttpClient.Builder okHttpBuilder;
|
private OkHttpClient.Builder okHttpBuilder;
|
||||||
private OkHttpClient okHttpClient;
|
private OkHttpClient okHttpClient;
|
||||||
//构造方法私有
|
//构造方法私有
|
||||||
|
|
|
@ -27,6 +27,7 @@ import retrofit2.HttpException;
|
||||||
|
|
||||||
public class OnSuccessAndFaultSub extends DisposableObserver<ResponseBody>
|
public class OnSuccessAndFaultSub extends DisposableObserver<ResponseBody>
|
||||||
implements ProgressCancelListener {
|
implements ProgressCancelListener {
|
||||||
|
private static final String TAG= OnSuccessAndFaultSub.class.getSimpleName();
|
||||||
/**
|
/**
|
||||||
* 是否需要显示默认Loading
|
* 是否需要显示默认Loading
|
||||||
*/
|
*/
|
||||||
|
@ -74,7 +75,7 @@ public class OnSuccessAndFaultSub extends DisposableObserver<ResponseBody>
|
||||||
private void showProgressDialog() {
|
private void showProgressDialog() {
|
||||||
if (showProgress && null != progressDialog) {
|
if (showProgress && null != progressDialog) {
|
||||||
progressDialog.setMessage("正在请求网络");
|
progressDialog.setMessage("正在请求网络");
|
||||||
progressDialog.show();
|
// progressDialog.show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,8 +137,12 @@ public class OnSuccessAndFaultSub extends DisposableObserver<ResponseBody>
|
||||||
mOnSuccessAndFaultListener.onFault("服务错误");
|
mOnSuccessAndFaultListener.onFault("服务错误");
|
||||||
}else if(code == 502) {
|
}else if(code == 502) {
|
||||||
HttpMethods.getInstance().changeBaseUrl(); //更新基本信息
|
HttpMethods.getInstance().changeBaseUrl(); //更新基本信息
|
||||||
Toast.makeText(context,"网关错误 ,请检查您的网络状态",Toast.LENGTH_LONG).show();
|
try {
|
||||||
mOnSuccessAndFaultListener.onFault("服务错误");
|
Toast.makeText(context, "服务器开小差了,请重试", Toast.LENGTH_LONG).show();
|
||||||
|
}catch (Exception e3){
|
||||||
|
Log.e(TAG, "prepare book onError: ",e3);
|
||||||
|
}
|
||||||
|
mOnSuccessAndFaultListener.onFault("服务器开小差了,请重试");
|
||||||
}else {
|
}else {
|
||||||
// ToastManager.showShortToast("请求失败");
|
// ToastManager.showShortToast("请求失败");
|
||||||
mOnSuccessAndFaultListener.onFault("请求失败");
|
mOnSuccessAndFaultListener.onFault("请求失败");
|
||||||
|
@ -150,7 +155,7 @@ public class OnSuccessAndFaultSub extends DisposableObserver<ResponseBody>
|
||||||
mOnSuccessAndFaultListener.onFault("error:" + e.getMessage());
|
mOnSuccessAndFaultListener.onFault("error:" + e.getMessage());
|
||||||
}
|
}
|
||||||
} catch (Exception e2) {
|
} catch (Exception e2) {
|
||||||
e2.printStackTrace();
|
Log.e(TAG, "prepare book onError: ",e );
|
||||||
} finally {
|
} finally {
|
||||||
Log.e("OnSuccessAndFaultSub", "error:" + e.getMessage());
|
Log.e("OnSuccessAndFaultSub", "error:" + e.getMessage());
|
||||||
// mOnSuccessAndFaultListener.onFault("error:" + e.getMessage());
|
// mOnSuccessAndFaultListener.onFault("error:" + e.getMessage());
|
||||||
|
|
|
@ -217,6 +217,7 @@ public class BookUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getTargetSites(){
|
public void getTargetSites(){
|
||||||
|
Log.d(TAG, "prepare book: getTargetSites" );
|
||||||
BookSubscribe.getNovelSites(mNovel.getNovelId(),new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
BookSubscribe.getNovelSites(mNovel.getNovelId(),new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String result) {
|
public void onSuccess(String result) {
|
||||||
|
@ -240,6 +241,8 @@ public class BookUtil {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFault(String errorMsg) {
|
public void onFault(String errorMsg) {
|
||||||
|
Log.d(TAG, String.format("prepare book %s get target sites fail.thread %s ,msg %s",mNovel.getName(),Thread.currentThread().getName(),errorMsg) );
|
||||||
|
|
||||||
//失败
|
//失败
|
||||||
// Toast.makeText(mContext,"getMuluInfo 请求失败"+errorMsg,Toast.LENGTH_SHORT).show();
|
// Toast.makeText(mContext,"getMuluInfo 请求失败"+errorMsg,Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
|
@ -303,8 +306,10 @@ public class BookUtil {
|
||||||
|
|
||||||
public int getChapterNo() {
|
public int getChapterNo() {
|
||||||
if(chapterNo > mChapters.size()){
|
if(chapterNo > mChapters.size()){
|
||||||
|
Log.d(TAG, String.format(" prepare book getChapterNo ,chapterNo %s, getChapters().size() %s " ,chapterNo , mChapters.size()) );
|
||||||
chapterNo =1;
|
chapterNo =1;
|
||||||
}
|
}
|
||||||
|
Log.d(TAG, String.format(" prepare book getChapterNo ,chapterNo %s, getChapters().size() %s " ,chapterNo , mChapters.size()) );
|
||||||
return chapterNo;
|
return chapterNo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -365,6 +370,11 @@ public class BookUtil {
|
||||||
return mSite !=null? mSite.getDomain():"";
|
return mSite !=null? mSite.getDomain():"";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean chaptCached(int num) {
|
||||||
|
File f = new File(fileChapterName(num));
|
||||||
|
return f.exists();
|
||||||
|
}
|
||||||
|
|
||||||
private class BookTask extends AsyncTask<String,Void,Boolean> {
|
private class BookTask extends AsyncTask<String,Void,Boolean> {
|
||||||
private String domain;
|
private String domain;
|
||||||
private int chapId;
|
private int chapId;
|
||||||
|
@ -568,7 +578,7 @@ int muluRetryCount =0;
|
||||||
}
|
}
|
||||||
mMuluStatus = MuluStatus.failed;
|
mMuluStatus = MuluStatus.failed;
|
||||||
|
|
||||||
if (muluRetryCount < 3) {
|
if (muluRetryCount < Constants.retryCnt) {
|
||||||
try {
|
try {
|
||||||
Thread.sleep(50);
|
Thread.sleep(50);
|
||||||
} catch (InterruptedException e1) {
|
} catch (InterruptedException e1) {
|
||||||
|
@ -610,7 +620,7 @@ int muluRetryCount =0;
|
||||||
Log.d(TAG,String.format("prepare book loadChapts----failed, %s 目录 from %s,return code %s", mNovel.getName() ,url,response.code() ));
|
Log.d(TAG,String.format("prepare book loadChapts----failed, %s 目录 from %s,return code %s", mNovel.getName() ,url,response.code() ));
|
||||||
handler.sendEmptyMessage(3);
|
handler.sendEmptyMessage(3);
|
||||||
mMuluStatus = MuluStatus.failed;
|
mMuluStatus = MuluStatus.failed;
|
||||||
if(muluRetryCount <3){
|
if(muluRetryCount <Constants.retryCnt){
|
||||||
Log.d(TAG,String.format("prepare book loadChapts----failed, response code %s retrying count %s",response.code(), muluRetryCount ));
|
Log.d(TAG,String.format("prepare book loadChapts----failed, response code %s retrying count %s",response.code(), muluRetryCount ));
|
||||||
muluRetryCount++;
|
muluRetryCount++;
|
||||||
readChaptersAsync();
|
readChaptersAsync();
|
||||||
|
@ -761,8 +771,8 @@ int muluRetryCount =0;
|
||||||
return line.toCharArray();
|
return line.toCharArray();
|
||||||
}
|
}
|
||||||
public char chaptCurrent(){
|
public char chaptCurrent(){
|
||||||
chapterNo = mChapters.size() < chapterNo ? 1 : chapterNo;
|
// chapterNo = mChapters.size() < chapterNo ? 1 : chapterNo;
|
||||||
|
// Log.d(TAG, String.format(" prepare book chaptCurrent() ,chapterNo %s, getChapters().size() %s " ,chapterNo , mChapters.size()) );
|
||||||
char[] charArray = chaptChars(chapterNo);
|
char[] charArray = chaptChars(chapterNo);
|
||||||
|
|
||||||
|
|
||||||
|
@ -1071,7 +1081,7 @@ int muluRetryCount =0;
|
||||||
}
|
}
|
||||||
synchronized void setDownloadFlag(boolean flag){
|
synchronized void setDownloadFlag(boolean flag){
|
||||||
isDownloadChapt = flag;
|
isDownloadChapt = flag;
|
||||||
Log.d("loadChaptContent",String.format("set download flat",isDownloadChapt) );
|
Log.d(TAG,String.format("set download flat",isDownloadChapt) );
|
||||||
}
|
}
|
||||||
public ChangeSource pagefactory;
|
public ChangeSource pagefactory;
|
||||||
Handler handler = new Handler() {
|
Handler handler = new Handler() {
|
||||||
|
@ -1090,7 +1100,7 @@ int muluRetryCount =0;
|
||||||
void handlerMsg(Message msg){
|
void handlerMsg(Message msg){
|
||||||
if (msg.what == 123) {
|
if (msg.what == 123) {
|
||||||
isDownloadChapt =true;
|
isDownloadChapt =true;
|
||||||
Log.d("loadChaptContent",String.format("handler msg, download %s",isDownloadChapt) );
|
Log.d(TAG,String.format("handler msg, download %s",isDownloadChapt) );
|
||||||
}else if(msg.what==1){
|
}else if(msg.what==1){
|
||||||
isDownloadChapt =true;
|
isDownloadChapt =true;
|
||||||
// Toast.makeText(mContext,"网络错误",Toast.LENGTH_LONG).show();
|
// Toast.makeText(mContext,"网络错误",Toast.LENGTH_LONG).show();
|
||||||
|
@ -1181,12 +1191,16 @@ int muluRetryCount =0;
|
||||||
if(chaptCache.containsKey(Integer.valueOf(index))) {
|
if(chaptCache.containsKey(Integer.valueOf(index))) {
|
||||||
block = chaptCache .get(index).getData().get();
|
block = chaptCache .get(index).getData().get();
|
||||||
}
|
}
|
||||||
|
// Log.d(TAG, String.format("prepare book begin to load content for chapter %s", index));
|
||||||
if (block == null) {
|
if (block == null) {
|
||||||
// cleanCacheFile(); //to remove
|
// cleanCacheFile(); //to remove
|
||||||
try {
|
try {
|
||||||
File file = new File(fileChapterName(index));
|
File file = new File(fileChapterName(index));
|
||||||
|
Log.d(TAG, String.format("prepare book begin to load content for chapter %s,file exists?%s", index,file.exists()));
|
||||||
if (!file.exists()) {
|
if (!file.exists()) {
|
||||||
|
Log.d(TAG, String.format("prepare book loadChapts---- %s, 目录数量 %s, MuluStatus %s , mChapters.size() %s, thread %s", mNovel.getName(), mChapters.size(), mMuluStatus
|
||||||
|
, mChapters.size()
|
||||||
|
, Thread.currentThread().getName()));
|
||||||
|
|
||||||
if (mMuluStatus == null) {
|
if (mMuluStatus == null) {
|
||||||
Log.d(TAG, String.format("prepare book loadChapts---- 还未有目录信息,出错了 %s 目录, 目录数量 %s, MuluStatus %s ,thread %s", mNovel.getName(), mChapters.size(), mMuluStatus, Thread.currentThread().getName()));
|
Log.d(TAG, String.format("prepare book loadChapts---- 还未有目录信息,出错了 %s 目录, 目录数量 %s, MuluStatus %s ,thread %s", mNovel.getName(), mChapters.size(), mMuluStatus, Thread.currentThread().getName()));
|
||||||
|
@ -1204,42 +1218,67 @@ int muluRetryCount =0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!NetUtil.isNetworkConnected() || muluRetryCount >= 3 && (mChapters == null || mChapters.size() == 0)) {
|
if (!NetUtil.isNetworkConnected() || muluRetryCount >= Constants.retryCnt && (mChapters == null || mChapters.size() == 0)) {
|
||||||
Log.d(TAG, String.format("loadChapts----超时。。。或出错了 %s 目录, 目录数量 %s, slept %s, MuluStatus %s,thread %s", mNovel.getName(), mChapters.size(), slept, mMuluStatus, Thread.currentThread().getName()));
|
Log.d(TAG, String.format("prepare book loadChapts----超时。。。或出错了 %s 目录, 目录数量 %s, slept %s, MuluStatus %s,thread %s", mNovel.getName(), mChapters.size(), slept, mMuluStatus, Thread.currentThread().getName()));
|
||||||
String error = "网络不给力";
|
String error = "网络不给力";
|
||||||
return error.toCharArray();
|
return error.toCharArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.d(TAG, String.format("loadChaptContent----start %s", new Date().toString()));
|
Log.d(TAG, String.format("prepare book loadChaptContent----start %s", new Date().toString()));
|
||||||
|
|
||||||
|
|
||||||
Log.d("loadChaptContent", String.format("begin to load content for chapter %s", index));
|
Log.d(TAG, String.format("prepare book isDownloadChapt: %s", isDownloadChapt));
|
||||||
Log.d("loadChaptContent", String.format("isDownloadChapt: %s", isDownloadChapt));
|
|
||||||
|
|
||||||
if (!chaptDownStatus.containsKey(Integer.valueOf(index))) {
|
if (!chaptDownStatus.containsKey(Integer.valueOf(index))) {
|
||||||
chaptDownStatus.put(index, DownloadStatus.downloading);
|
chaptDownStatus.put(index, DownloadStatus.downloading);
|
||||||
|
Log.d(TAG, String.format("prepare book put chaptDownStatus index %s,start to load chapcontent", index));
|
||||||
loadChaptContent(index);
|
loadChaptContent(index);
|
||||||
}
|
}
|
||||||
|
Log.d(TAG, String.format(" prepare book loadChaptContent %s for downloading,isDownload %s ,chaptDownStatus %s, thread %s ",
|
||||||
|
index,getDownloadStatus(), chaptDownStatus.get(Integer.valueOf(index)), Thread.currentThread().getName()));
|
||||||
|
|
||||||
|
|
||||||
Log.d("loadChaptContent", String.format("showing dialog "));
|
|
||||||
// Log.d(TAG,String.format("showing progress diaglog......"));
|
|
||||||
int maxSleep = 4500;
|
int maxSleep = 4500;
|
||||||
int slepttime = 0;
|
int slepttime = 0;
|
||||||
// while(!file.exists() && !getDownloadStatus()){//&& slepttime <maxSleep){
|
// while(!file.exists() && !getDownloadStatus()){//&& slepttime <maxSleep){
|
||||||
// while( !getDownloadStatus() && slepttime <maxSleep){
|
// while( !getDownloadStatus() && slepttime <maxSleep){
|
||||||
while (NetUtil.isNetworkConnected() && !getDownloadStatus() && chaptDownStatus.get(Integer.valueOf(index)) == DownloadStatus.downloading && slepttime < maxSleep) {
|
|
||||||
|
/* while (NetUtil.isNetworkConnected() && !getDownloadStatus() && chaptDownStatus.get(Integer.valueOf(index)) == DownloadStatus.downloading && slepttime < maxSleep) {
|
||||||
Thread.sleep(50);
|
Thread.sleep(50);
|
||||||
slepttime += 50;
|
slepttime += 50;
|
||||||
Log.d(TAG, String.format(" prepare book loadChaptContent slept %s for downloading,isDownload %s ,thread %s ", slepttime, getDownloadStatus(), Thread.currentThread().getName()));
|
Log.d(TAG, String.format(" prepare book loadChaptContent slept %s for downloading,isDownload %s ,thread %s ", slepttime, getDownloadStatus(), Thread.currentThread().getName()));
|
||||||
|
}*/
|
||||||
|
while (!file.exists() && NetUtil.isNetworkConnected() && chaptDownStatus.get(Integer.valueOf(index)) == DownloadStatus.downloading && slepttime < maxSleep) {
|
||||||
|
Thread.sleep(50);
|
||||||
|
slepttime += 50;
|
||||||
|
Log.d(TAG, String.format(" prepare book loadChaptContent %s , slept %s for downloading,isDownload %s ,thread %s ",index, slepttime, getDownloadStatus(), Thread.currentThread().getName()));
|
||||||
}
|
}
|
||||||
Log.d("loadChaptContent", String.format("loadChaptContent slept %s for downloading ", slepttime));
|
Log.d(TAG, String.format("prepare book loadChaptContent slept %s for downloading ", slepttime));
|
||||||
|
|
||||||
|
if (chaptDownStatus.get(Integer.valueOf(index)) == DownloadStatus.failure) {
|
||||||
|
if (fileRetryCnt.containsKey(index)) {
|
||||||
|
fileRetryCnt.put(index, fileRetryCnt.get(index) + 1);
|
||||||
|
} else {
|
||||||
|
fileRetryCnt.put(index, 1);
|
||||||
|
}
|
||||||
|
Log.d(TAG, String.format("prepare book loadChaptContent %s, rertying count %s ",index, fileRetryCnt.get(index)));
|
||||||
|
if (fileRetryCnt.get(index) < Constants.retryCnt) {
|
||||||
|
Log.d(TAG, String.format("prepare book loadChaptContent ,rertying to download chapt %s ", index));
|
||||||
|
loadChaptContent(index);
|
||||||
|
|
||||||
}
|
}
|
||||||
Log.d("loadChaptContent", String.format(" %s, file.exists()? %s", file.getPath(), file.exists()));
|
}
|
||||||
if (!file.exists() && !NetUtil.isNetworkConnected()) {
|
}
|
||||||
|
|
||||||
String error = "网络不给力";
|
Log.d(TAG, String.format(" prepare book %s, file.exists()? %s", file.getPath(), file.exists()));
|
||||||
|
if (!file.exists()) {
|
||||||
|
String error = "下载内容失败";
|
||||||
|
if( !NetUtil.isNetworkConnected()){
|
||||||
|
error = "连不上网络";
|
||||||
|
|
||||||
|
}
|
||||||
|
Log.d(TAG, String.format("prepare book loadChaptContent retrying " ));
|
||||||
|
// return chaptChars( index);
|
||||||
return error.toCharArray();
|
return error.toCharArray();
|
||||||
}
|
}
|
||||||
if (mChapters.size() > index && NetUtil.isNetworkConnected()) {
|
if (mChapters.size() > index && NetUtil.isNetworkConnected()) {
|
||||||
|
@ -1311,6 +1350,7 @@ int muluRetryCount =0;
|
||||||
return block;
|
return block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Map<Integer,Integer> fileRetryCnt = new HashMap<Integer,Integer>();
|
||||||
private void loadChaptContent(final int chapterIndex) throws JSONException, InterruptedException {
|
private void loadChaptContent(final int chapterIndex) throws JSONException, InterruptedException {
|
||||||
/* 章节内容没有缓存在本地
|
/* 章节内容没有缓存在本地
|
||||||
1. 根据本地的章节网络地址信息,读取章节内容到本地,若读取失败则
|
1. 根据本地的章节网络地址信息,读取章节内容到本地,若读取失败则
|
||||||
|
@ -1338,7 +1378,7 @@ private void loadChaptContent(final int chapterIndex) throws JSONException, Inte
|
||||||
|
|
||||||
setDownloadFlag(false);
|
setDownloadFlag(false);
|
||||||
|
|
||||||
Log.d( "loadChaptContent",String.format("loadChaptContent isDownloadChapt: %s",isDownloadChapt));
|
Log.d( TAG,String.format("loadChaptContent isDownloadChapt: %s",isDownloadChapt));
|
||||||
JSONObject siteJson = new JSONObject();
|
JSONObject siteJson = new JSONObject();
|
||||||
siteJson.put("chapterContentRegex", mSiteRule.getChapterContentRegex());
|
siteJson.put("chapterContentRegex", mSiteRule.getChapterContentRegex());
|
||||||
siteJson.put("chapterContentDumpRegex", mSiteRule.getChapterContentDumpRegex());
|
siteJson.put("chapterContentDumpRegex", mSiteRule.getChapterContentDumpRegex());
|
||||||
|
@ -1351,11 +1391,13 @@ private void loadChaptContent(final int chapterIndex) throws JSONException, Inte
|
||||||
// return;
|
// return;
|
||||||
}
|
}
|
||||||
|
|
||||||
handler.sendEmptyMessage(123);
|
// handler.sendEmptyMessage(123);
|
||||||
handler.sendEmptyMessage(1);
|
// handler.sendEmptyMessage(1);
|
||||||
|
|
||||||
|
|
||||||
chaptDownStatus.put(index,DownloadStatus.failure);
|
chaptDownStatus.put(index,DownloadStatus.failure);
|
||||||
setDownloadFlag(true);
|
setDownloadFlag(true);
|
||||||
Log.d( "loadChaptContent",String.format("loadChaptContent fail, isDownloadChapt: %s",isDownloadChapt));
|
Log.d( TAG,String.format("prepare book loadChaptContent fail, isDownloadChapt: %s",isDownloadChapt));
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
// throw new RuntimeException("Error during writing " + fileChapterName( index));
|
// throw new RuntimeException("Error during writing " + fileChapterName( index));
|
||||||
}
|
}
|
||||||
|
@ -1365,10 +1407,10 @@ private void loadChaptContent(final int chapterIndex) throws JSONException, Inte
|
||||||
ResponseBody body = response.body();
|
ResponseBody body = response.body();
|
||||||
if (body != null ) {
|
if (body != null ) {
|
||||||
if(response.code()!=200){
|
if(response.code()!=200){
|
||||||
Log.d(TAG, "loadChaptContent----network failure returnCode " + response.code());
|
Log.d(TAG, "prepare book loadChaptContent----network failure returnCode " + response.code());
|
||||||
setDownloadFlag(true);
|
setDownloadFlag(true);
|
||||||
chaptDownStatus.put(index,DownloadStatus.failure);
|
chaptDownStatus.put(index,DownloadStatus.failure);
|
||||||
Log.d( "loadChaptContent",String.format("loadChaptContent error %s ,isDownloadChapt: %s", response.code(),isDownloadChapt));
|
Log.d( TAG,String.format("prepare book loadChaptContent error %s ,isDownloadChapt: %s", response.code(),isDownloadChapt));
|
||||||
handler.sendEmptyMessage(1);
|
handler.sendEmptyMessage(1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1385,7 +1427,7 @@ private void loadChaptContent(final int chapterIndex) throws JSONException, Inte
|
||||||
final OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(fileChapterName(index)), charachterType);//"UTF-16LE"); // UTF-16LE 比 utf-8 文件小
|
final OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(fileChapterName(index)), charachterType);//"UTF-16LE"); // UTF-16LE 比 utf-8 文件小
|
||||||
writer.write(buf);
|
writer.write(buf);
|
||||||
writer.close();
|
writer.close();
|
||||||
Log.d( "loadChaptContent",String.format("prepare book loadChaptContent file created: %s, thread %s", file.getPath(), Thread.currentThread().getName()));
|
Log.d( TAG,String.format("prepare book loadChaptContent file created: %s, thread %s", file.getPath(), Thread.currentThread().getName()));
|
||||||
handler.sendEmptyMessage(123);
|
handler.sendEmptyMessage(123);
|
||||||
setDownloadFlag(true);
|
setDownloadFlag(true);
|
||||||
} catch (IOException | JSONException e) {
|
} catch (IOException | JSONException e) {
|
||||||
|
|
|
@ -15,4 +15,6 @@ public class Constants {
|
||||||
public static List<String> lstNt=null;
|
public static List<String> lstNt=null;
|
||||||
//public static List<Progress> lstProgress=null;
|
//public static List<Progress> lstProgress=null;
|
||||||
public static String[] lstProgress={"连载中","已完本","新书"};
|
public static String[] lstProgress={"连载中","已完本","新书"};
|
||||||
|
public static int retryCnt =10;
|
||||||
|
// public static List<String> lstProgress=null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,9 @@ import java.io.IOException;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
//import static com.baidu.tts.loopj.AsyncHttpClient.log;
|
//import static com.baidu.tts.loopj.AsyncHttpClient.log;
|
||||||
|
|
||||||
|
@ -188,12 +190,40 @@ public class PageFactory implements ChangeSource{
|
||||||
|
|
||||||
void handlerMsg(Message msg) {
|
void handlerMsg(Message msg) {
|
||||||
if (msg.what == 1) {
|
if (msg.what == 1) {
|
||||||
|
Log.d(TAG, String.format("prepare book handler get notic to download chapter %s , mBook is null? %s",currentChapter, mBook==null ) );
|
||||||
|
if (mBook != null) {
|
||||||
changeChapter(currentChapter);
|
changeChapter(currentChapter);
|
||||||
|
}else{
|
||||||
|
mStatus = Status.FAIL;
|
||||||
|
drawStatus(mBookPageWidget.getCurPage());
|
||||||
|
drawStatus(mBookPageWidget.getNextPage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
Map<Integer,Integer> fileRetryCnt = new HashMap<Integer,Integer>();
|
||||||
private List<TRPage> loadCurrentChapt(int chaptId){
|
private List<TRPage> loadCurrentChapt(int chaptId){
|
||||||
Log.d(TAG, String.format("prepare book, loadCurrentChapt chaptId %s, getChapters().size() %s ",chaptId,getChapters().size() ) );
|
Log.d(TAG, String.format("prepare book, loadCurrentChapt chaptId %s, getChapters().size() %s ,currentChapter %s",chaptId,getChapters().size() ,currentChapter) );
|
||||||
|
|
||||||
|
List<TRPage> chaptPages = new ArrayList<TRPage>();
|
||||||
|
chaptPages.add(new TRPage());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (fileRetryCnt.containsKey(chaptId)) {
|
||||||
|
fileRetryCnt.put(chaptId, fileRetryCnt.get(chaptId) + 1);
|
||||||
|
} else {
|
||||||
|
fileRetryCnt.clear();//只保留一个章节数据
|
||||||
|
fileRetryCnt.put(chaptId, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.d(TAG, String.format("prepare book loadCurrentChapt %s, rertying count %s ",chaptId, fileRetryCnt.get(chaptId)));
|
||||||
|
|
||||||
|
if(fileRetryCnt.get(chaptId) > Constants.retryCnt){
|
||||||
|
mStatus = Status.FAIL;
|
||||||
|
drawStatus(mBookPageWidget.getCurPage());
|
||||||
|
drawStatus(mBookPageWidget.getNextPage());
|
||||||
|
return chaptPages;
|
||||||
|
}
|
||||||
final File file = new File(getChapterFileName(chaptId));
|
final File file = new File(getChapterFileName(chaptId));
|
||||||
|
|
||||||
if (!file.exists()) { //待下载
|
if (!file.exists()) { //待下载
|
||||||
|
@ -202,8 +232,7 @@ public class PageFactory implements ChangeSource{
|
||||||
chaptId = chaptId > 0 ? chaptId : 1;
|
chaptId = chaptId > 0 ? chaptId : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<TRPage> chaptPages = new ArrayList<TRPage>();
|
|
||||||
chaptPages.add(new TRPage());
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -227,7 +256,7 @@ public class PageFactory implements ChangeSource{
|
||||||
drawStatus(mBookPageWidget.getNextPage());
|
drawStatus(mBookPageWidget.getNextPage());
|
||||||
return chaptPages;
|
return chaptPages;
|
||||||
}
|
}
|
||||||
if(getChapters().size()==0 && mBookUtil.muluRetryCount>=3) {
|
if(getChapters().size()==0 && mBookUtil.muluRetryCount>=Constants.retryCnt) {
|
||||||
Log.d(TAG, String.format("prepare book download mulu 失败,重试次数: %s ,thread.name %s",mBookUtil.muluRetryCount,Thread.currentThread().getName() ) );
|
Log.d(TAG, String.format("prepare book download mulu 失败,重试次数: %s ,thread.name %s",mBookUtil.muluRetryCount,Thread.currentThread().getName() ) );
|
||||||
mBookUtil.muluRetryCount=0;
|
mBookUtil.muluRetryCount=0;
|
||||||
mStatus = Status.FAIL;
|
mStatus = Status.FAIL;
|
||||||
|
@ -250,7 +279,7 @@ public class PageFactory implements ChangeSource{
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
int slepttime =0;
|
int slepttime =0;
|
||||||
while( !file.exists() && slepttime <100 && mBookUtil.muluRetryCount<3){
|
while( !file.exists() && slepttime <60 && mBookUtil.muluRetryCount<Constants.retryCnt){
|
||||||
try {
|
try {
|
||||||
sleep(50);
|
sleep(50);
|
||||||
slepttime++;
|
slepttime++;
|
||||||
|
@ -261,10 +290,10 @@ public class PageFactory implements ChangeSource{
|
||||||
Log.d(TAG, String.format("prepare book to download chapter %s ,slepted %s ,thread.name %s",chid,slepttime*50 ,Thread.currentThread().getName() ) );
|
Log.d(TAG, String.format("prepare book to download chapter %s ,slepted %s ,thread.name %s",chid,slepttime*50 ,Thread.currentThread().getName() ) );
|
||||||
|
|
||||||
mStatus = Status.FINISH;
|
mStatus = Status.FINISH;
|
||||||
if( mBookUtil.muluRetryCount>=3){
|
if( mBookUtil.muluRetryCount>=Constants.retryCnt){
|
||||||
mStatus = Status.FAIL;
|
mStatus = Status.FAIL;
|
||||||
}
|
}
|
||||||
|
Log.d(TAG, String.format("prepare book to download chapter %s ,handler notice changeChapter %s",chid, currentChapter ) );
|
||||||
//notice file done
|
//notice file done
|
||||||
handler.sendEmptyMessage(1);
|
handler.sendEmptyMessage(1);
|
||||||
|
|
||||||
|
@ -294,10 +323,10 @@ public class PageFactory implements ChangeSource{
|
||||||
|
|
||||||
// chaptId = mChapters!=null && mChapters.size() <= chaptId ? 1 : chaptId;
|
// chaptId = mChapters!=null && mChapters.size() <= chaptId ? 1 : chaptId;
|
||||||
|
|
||||||
Log.d(TAG, String.format("changing Source prepare book to open chapter %s ",chaptId ) );
|
Log.d(TAG, String.format("changing Source prepare book to open chapter %s, currentChapter %s ",chaptId ,currentChapter ) );
|
||||||
char[] chars = mBookUtil.chaptChars(chaptId);
|
char[] chars = mBookUtil.chaptChars(chaptId);
|
||||||
String s = new String(chars);
|
String s = new String(chars);
|
||||||
// Log.d(TAG, String.format("prepare book to open chapter %s,chars %s ",chaptId ,s ) );
|
// Log.d(TAG, String.format("prepare book open chapter %s,chars %s ",chaptId ,s ) );
|
||||||
mBookUtil.setBookLen(chars.length);
|
mBookUtil.setBookLen(chars.length);
|
||||||
mBookUtil.setChapterNo(chaptId);
|
mBookUtil.setChapterNo(chaptId);
|
||||||
// TRPage page = new TRPage();
|
// TRPage page = new TRPage();
|
||||||
|
@ -321,6 +350,7 @@ public class PageFactory implements ChangeSource{
|
||||||
length= page.getEnd();
|
length= page.getEnd();
|
||||||
}
|
}
|
||||||
mStatus = Status.FINISH;
|
mStatus = Status.FINISH;
|
||||||
|
Log.d(TAG, String.format("changing Source prepare book to draw chapter %s, currentChapter %s ",chaptId ,currentChapter ) );
|
||||||
drawStatus(mBookPageWidget.getCurPage());
|
drawStatus(mBookPageWidget.getCurPage());
|
||||||
drawStatus(mBookPageWidget.getNextPage());
|
drawStatus(mBookPageWidget.getNextPage());
|
||||||
return chaptPages;
|
return chaptPages;
|
||||||
|
@ -330,9 +360,9 @@ public class PageFactory implements ChangeSource{
|
||||||
|
|
||||||
TRPage trPage = new TRPage();
|
TRPage trPage = new TRPage();
|
||||||
trPage.setBegin(position +1);
|
trPage.setBegin(position +1);
|
||||||
Log.d(TAG,"page postion next begin:" + (position + 1) + "");
|
// Log.d(TAG,"page postion next begin:" + (position + 1) + "");
|
||||||
trPage.setLines(getNextLines());
|
trPage.setLines(getNextLines());
|
||||||
Log.d(TAG,"page postion next end:" +mBookUtil.getPosition() + "");
|
// Log.d(TAG,"page postion next end:" +mBookUtil.getPosition() + "");
|
||||||
trPage.setEnd(mBookUtil.getPosition());
|
trPage.setEnd(mBookUtil.getPosition());
|
||||||
return trPage;
|
return trPage;
|
||||||
}
|
}
|
||||||
|
@ -400,7 +430,10 @@ public static boolean busy(){
|
||||||
SERVERERROR
|
SERVERERROR
|
||||||
}
|
}
|
||||||
|
|
||||||
public static synchronized PageFactory getInstance(){
|
public static synchronized PageFactory getInstance(Context context){
|
||||||
|
if(pageFactory==null){
|
||||||
|
createPageFactory(context);
|
||||||
|
}
|
||||||
return pageFactory;
|
return pageFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -510,7 +543,7 @@ public static boolean busy(){
|
||||||
}
|
}
|
||||||
private void calculateLineCount(float paragrapheight){
|
private void calculateLineCount(float paragrapheight){
|
||||||
mLineCount = (int) ((mVisibleHeight - paragrapheight ) / (m_fontSize + lineSpace));// 可显示的行数
|
mLineCount = (int) ((mVisibleHeight - paragrapheight ) / (m_fontSize + lineSpace));// 可显示的行数
|
||||||
Log.d(TAG,"line count is " + mLineCount +" paragrapheight is " +paragrapheight);
|
// Log.d(TAG,"line count is " + mLineCount +" paragrapheight is " +paragrapheight);
|
||||||
}
|
}
|
||||||
private void drawStatus(Bitmap bitmap){
|
private void drawStatus(Bitmap bitmap){
|
||||||
mAd.hideSystemUI();
|
mAd.hideSystemUI();
|
||||||
|
@ -553,9 +586,13 @@ public static boolean busy(){
|
||||||
if(m_lines.size()==0){
|
if(m_lines.size()==0){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Log.d(TAG, String.format(" prepare book onDraw chapter %s, getChapters().size() %s ",currentChapter ,getChapters().size() ) );
|
||||||
if (getChapters().size() > 0 && updateChapter) {
|
if (getChapters().size() > 0 && updateChapter) {
|
||||||
|
// Log.d(TAG, String.format(" prepare book onDraw chapter to getCurrentChapter(),currentChapter %s ",currentChapter ) );
|
||||||
currentChapter = getCurrentChapter();
|
currentChapter = getCurrentChapter();
|
||||||
|
// Log.d(TAG, String.format(" prepare book onDraw chapter after getCurrentChapter(),currentChapter %s ",currentChapter ) );
|
||||||
}
|
}
|
||||||
|
// Log.d(TAG, String.format(" prepare book onDraw chapter _____________ %s ",currentChapter ) );
|
||||||
//更新数据库进度
|
//更新数据库进度
|
||||||
if ( mStatus ==Status.FINISH && currentPage != null && mBook != null){
|
if ( mStatus ==Status.FINISH && currentPage != null && mBook != null){
|
||||||
new Thread() {
|
new Thread() {
|
||||||
|
@ -618,24 +655,24 @@ public static boolean busy(){
|
||||||
strLine =strLine.replace("\n","");
|
strLine =strLine.replace("\n","");
|
||||||
y += space;
|
y += space;
|
||||||
space =m_fontSize + paragraphSpace;
|
space =m_fontSize + paragraphSpace;
|
||||||
Log.d( TAG ,String.format("开始新段落 %s, y plus is %s" ,strLine, m_fontSize + paragraphSpace));
|
// Log.d( TAG ,String.format("prepare book 开始新段落 %s, y plus is %s" ,strLine, m_fontSize + paragraphSpace));
|
||||||
}else{
|
}else{
|
||||||
y += space;
|
y += space;
|
||||||
space =m_fontSize + lineSpace;
|
space =m_fontSize + lineSpace;
|
||||||
Log.d(TAG,String.format("%s,y plus is %s" ,strLine, m_fontSize + lineSpace));
|
// Log.d(TAG,String.format("prepare book %s,y plus is %s" ,strLine, m_fontSize + lineSpace));
|
||||||
}
|
}
|
||||||
c.drawText(strLine, measureMarginWidth, y, mPaint);
|
c.drawText(strLine, measureMarginWidth, y, mPaint);
|
||||||
// word.append(strLine);
|
// word.append(strLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.d(TAG,String.format("getNavigationBarSize mHeight is %s ,last line height %s, power %s, %s",
|
// Log.d(TAG,String.format("getNavigationBarSize mHeight is %s ,last line height %s, power %s, %s",
|
||||||
mHeight,y,mHeight - CommonUtil.convertDpToPixel(mContext,10) + mBorderWidth - statusMarginBottom, lastLine));
|
// mHeight,y,mHeight - CommonUtil.convertDpToPixel(mContext,10) + mBorderWidth - statusMarginBottom, lastLine));
|
||||||
|
|
||||||
float adHeight = mHeight -y - space -marginHeight-statusMarginBottom;
|
float adHeight = mHeight -y - space -marginHeight-statusMarginBottom;
|
||||||
float adY =y +space;
|
float adY =y +space;
|
||||||
showAd((int)adHeight,(int)adY);
|
showAd((int)adHeight,(int)adY);
|
||||||
Log.d(TAG,String.format("ad + statusMarginBottom %s ",200+ statusMarginBottom));
|
// Log.d(TAG,String.format("ad + statusMarginBottom %s ",200+ statusMarginBottom));
|
||||||
Log.d(TAG,String.format("adHeight %s, adY %s",adHeight,adY));
|
// Log.d(TAG,String.format("adHeight %s, adY %s",adHeight,adY));
|
||||||
}
|
}
|
||||||
|
|
||||||
//画进度及时间
|
//画进度及时间
|
||||||
|
@ -759,7 +796,7 @@ public static boolean busy(){
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Log.d(TAG, "prepare book nextPage: to open next page: ");
|
// Log.d(TAG, "prepare book nextPage: to open next page: ");
|
||||||
cancelPage = currentPage;
|
cancelPage = currentPage;
|
||||||
onDraw(mBookPageWidget.getCurPage(),currentPage.getLines(),true);
|
onDraw(mBookPageWidget.getCurPage(),currentPage.getLines(),true);
|
||||||
prePage = currentPage;
|
prePage = currentPage;
|
||||||
|
@ -784,6 +821,9 @@ public static boolean busy(){
|
||||||
}
|
}
|
||||||
|
|
||||||
public void prepareBook(Novel book){
|
public void prepareBook(Novel book){
|
||||||
|
|
||||||
|
Log.d(TAG, "prepare book: start prepare book " + book.getName());
|
||||||
|
|
||||||
if(mBook!=null &&mBook.getNovelId() !=book.getNovelId()){ //取消未上本书完成的web请求,待验证效果
|
if(mBook!=null &&mBook.getNovelId() !=book.getNovelId()){ //取消未上本书完成的web请求,待验证效果
|
||||||
try {
|
try {
|
||||||
NetUtil.cancelRequest(mBook.getNovelId() );
|
NetUtil.cancelRequest(mBook.getNovelId() );
|
||||||
|
@ -794,7 +834,7 @@ public static boolean busy(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.d(TAG, "prepare book: .start prepare book " + book.getName());
|
|
||||||
this.mBook = book ;
|
this.mBook = book ;
|
||||||
mBookUtil = new BookUtil();
|
mBookUtil = new BookUtil();
|
||||||
//this.mBookUtil.setContext(context);
|
//this.mBookUtil.setContext(context);
|
||||||
|
@ -912,7 +952,8 @@ public static boolean busy(){
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int nextPageNo =currentPage.getPageNo();
|
int nextPageNo =currentPage.getPageNo();
|
||||||
Log.e(TAG,"currentChaptPages.size() is " + currentChaptPages.size() +", currentpage pageno is " + nextPageNo);
|
Log.e(TAG,String.format("prepare book getNextPage() currentChapter %s, currentChaptPages .size() is %s,currentpage pageno is %s"
|
||||||
|
,currentChapter, currentChaptPages.size() ,currentChapter, nextPageNo));
|
||||||
if(nextPageNo >= currentChaptPages.size()){
|
if(nextPageNo >= currentChaptPages.size()){
|
||||||
preChaptPages =currentChaptPages;
|
preChaptPages =currentChaptPages;
|
||||||
currentChapter++;
|
currentChapter++;
|
||||||
|
@ -962,13 +1003,14 @@ public static boolean busy(){
|
||||||
trPage.setEnd(mBookUtil.getPosition());
|
trPage.setEnd(mBookUtil.getPosition());
|
||||||
return trPage;
|
return trPage;
|
||||||
*/
|
*/
|
||||||
|
Log.d(TAG, String.format("prepare book getPageForBegin: chaptid %s, begin %s ",currentChapter,begin));
|
||||||
for(TRPage page : currentChaptPages)
|
for(TRPage page : currentChaptPages)
|
||||||
{
|
{
|
||||||
if(page.getEnd() >begin){
|
if(page.getEnd() >begin){
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//return new TRPage();// currentChaptPages.get(currentChaptPages.size()-1);
|
//return new TRPage();// currentChaptPages.get(currentChaptPages.size()-1);
|
||||||
return currentChaptPages.get(currentChaptPages.size()-1);
|
return currentChaptPages.get(currentChaptPages.size()-1);
|
||||||
}
|
}
|
||||||
|
@ -1000,7 +1042,7 @@ public static boolean busy(){
|
||||||
height += paragraphSpace - lineSpace;
|
height += paragraphSpace - lineSpace;
|
||||||
calculateLineCount(height);
|
calculateLineCount(height);
|
||||||
if (lines.size()>= mLineCount){
|
if (lines.size()>= mLineCount){
|
||||||
Log.d(TAG,String.format("lines count limit a %s,lines size %s",mLineCount,lines.size()));
|
// Log.d(TAG,String.format("lines count limit a %s,lines size %s",mLineCount,lines.size()));
|
||||||
line ="";
|
line ="";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1024,7 +1066,7 @@ public static boolean busy(){
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lines.size() == mLineCount){
|
if (lines.size() == mLineCount){
|
||||||
Log.d(TAG,String.format("lines count limit c %s,lines size %s",mLineCount,lines.size()));
|
// Log.d(TAG,String.format("lines count limit c %s,lines size %s",mLineCount,lines.size()));
|
||||||
if (!line.isEmpty()){
|
if (!line.isEmpty()){
|
||||||
// mBookUtil.setPostition(mBookUtil.getPosition() - line.length()-2);// mBookUtil.setPostition(mBookUtil.getPosition() - 1);
|
// mBookUtil.setPostition(mBookUtil.getPosition() - line.length()-2);// mBookUtil.setPostition(mBookUtil.getPosition() - 1);
|
||||||
mBookUtil.setPostition(mBookUtil.getPosition() - 1);
|
mBookUtil.setPostition(mBookUtil.getPosition() - 1);
|
||||||
|
@ -1051,9 +1093,9 @@ public static boolean busy(){
|
||||||
}
|
}
|
||||||
// lines.add(line);
|
// lines.add(line);
|
||||||
}
|
}
|
||||||
for (String str : lines){
|
/*for (String str : lines){
|
||||||
Log.d(TAG,str + " ");
|
Log.d(TAG,str + " ");
|
||||||
}
|
}*/
|
||||||
return lines;
|
return lines;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1126,7 +1168,11 @@ public static boolean busy(){
|
||||||
|
|
||||||
//上一章
|
//上一章
|
||||||
public void preChapter(){
|
public void preChapter(){
|
||||||
if (mBookUtil.getChapters().size() > 0){
|
fileRetryCnt.clear();
|
||||||
|
if(currentChapter==1){
|
||||||
|
Toast.makeText(mContext,"到头了",Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
// if (mBookUtil.getChapters().size() > 0 ){
|
||||||
int num = currentChapter;
|
int num = currentChapter;
|
||||||
if (num ==1){
|
if (num ==1){
|
||||||
num = getCurrentChapter();
|
num = getCurrentChapter();
|
||||||
|
@ -1143,16 +1189,22 @@ public static boolean busy(){
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
//}
|
||||||
|
|
||||||
//下一章
|
//下一章
|
||||||
public void nextChapter(){
|
public void nextChapter(){
|
||||||
|
fileRetryCnt.clear();
|
||||||
int num = currentChapter;
|
int num = currentChapter;
|
||||||
if (num == 0){
|
if (num == 0){
|
||||||
num = getCurrentChapter();
|
num = getCurrentChapter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(num==getChapters().size()){
|
||||||
|
Toast.makeText(mContext,"没有了",Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
num ++;
|
num ++;
|
||||||
if (num <= getChapters().size()){
|
|
||||||
|
if (num <= getChapters().size() || mBookUtil.chaptCached(num)){
|
||||||
|
|
||||||
preChaptPages =currentChaptPages;
|
preChaptPages =currentChaptPages;
|
||||||
currentChapter = num;
|
currentChapter = num;
|
||||||
|
@ -1179,12 +1231,13 @@ public static boolean busy(){
|
||||||
*/
|
*/
|
||||||
|
|
||||||
currentChapter = mBookUtil.getChapterNo();
|
currentChapter = mBookUtil.getChapterNo();
|
||||||
|
// Log.d(TAG, String.format(" prepare book onDraw chapter after mBookUtil.getChapterNo(),currentChapter %s ",currentChapter ) );
|
||||||
return currentChapter ;
|
return currentChapter ;
|
||||||
}
|
}
|
||||||
|
|
||||||
//绘制当前页面
|
//绘制当前页面
|
||||||
public void currentPage(Boolean updateChapter){
|
public void currentPage(Boolean updateChapter){
|
||||||
Log.d(TAG, "prepare book currentPage: to open current Page : ");
|
// Log.d(TAG, "prepare book currentPage: to open current Page : ");
|
||||||
onDraw(mBookPageWidget.getCurPage(),currentPage.getLines(),updateChapter);
|
onDraw(mBookPageWidget.getCurPage(),currentPage.getLines(),updateChapter);
|
||||||
onDraw(mBookPageWidget.getNextPage(),currentPage.getLines(),updateChapter);
|
onDraw(mBookPageWidget.getNextPage(),currentPage.getLines(),updateChapter);
|
||||||
}
|
}
|
||||||
|
@ -1220,7 +1273,9 @@ public static boolean busy(){
|
||||||
|
|
||||||
//改变章节
|
//改变章节
|
||||||
public void changeChapter(int chapNum){
|
public void changeChapter(int chapNum){
|
||||||
|
if (mBook == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
preChaptPages =currentChaptPages;
|
preChaptPages =currentChaptPages;
|
||||||
currentChapter = chapNum;
|
currentChapter = chapNum;
|
||||||
mBookUtil.setChapterNo(currentChapter);
|
mBookUtil.setChapterNo(currentChapter);
|
||||||
|
@ -1341,6 +1396,7 @@ public static boolean busy(){
|
||||||
|
|
||||||
public void clear(){
|
public void clear(){
|
||||||
Log.d(TAG, String .format("prepare Book: clearing book info %s" , getNovle().getName()));
|
Log.d(TAG, String .format("prepare Book: clearing book info %s" , getNovle().getName()));
|
||||||
|
fileRetryCnt.clear();
|
||||||
//mBookUtil=null;
|
//mBookUtil=null;
|
||||||
currentChapter = 0;
|
currentChapter = 0;
|
||||||
bookPath = "";
|
bookPath = "";
|
||||||
|
|
|
@ -112,7 +112,7 @@
|
||||||
android:layout_height="40dp"
|
android:layout_height="40dp"
|
||||||
android:background="@color/white"
|
android:background="@color/white"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="selected texts"
|
android:text=""
|
||||||
android:textColor="@color/red"
|
android:textColor="@color/red"
|
||||||
android:textSize="15sp"
|
android:textSize="15sp"
|
||||||
/>
|
/>
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
android:divider="#ffff0000"
|
android:divider="#ffff0000"
|
||||||
android:dividerHeight="10dp"
|
android:dividerHeight="10dp"
|
||||||
android:nestedScrollingEnabled="true"
|
android:nestedScrollingEnabled="true"
|
||||||
android:paddingBottom="50dp" />
|
android:paddingBottom="35dp" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,31 @@
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
<android.support.design.widget.AppBarLayout
|
||||||
|
android:id="@+id/appbar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentTop="true"
|
||||||
|
android:clipToPadding="true"
|
||||||
|
android:fitsSystemWindows="true"
|
||||||
|
android:theme="@style/AppTheme.AppBarOverlay"
|
||||||
|
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
|
<android.support.v7.widget.Toolbar
|
||||||
|
android:id="@+id/toolbar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@color/read_dialog_bg"
|
||||||
|
|
||||||
|
android:fitsSystemWindows="true"
|
||||||
|
android:minHeight="?attr/actionBarSize"
|
||||||
|
app:popupTheme="@style/AppTheme.PopupOverlay" />
|
||||||
|
|
||||||
|
</android.support.design.widget.AppBarLayout>
|
||||||
|
<!-- <android.support.v7.widget.RecyclerView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>-->
|
||||||
<com.novelbook.android.view.PageWidget
|
<com.novelbook.android.view.PageWidget
|
||||||
android:id="@+id/bookpage"
|
android:id="@+id/bookpage"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -36,26 +60,7 @@
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
<android.support.design.widget.AppBarLayout
|
|
||||||
android:id="@+id/appbar"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignParentTop="true"
|
|
||||||
android:fitsSystemWindows="true"
|
|
||||||
android:theme="@style/AppTheme.AppBarOverlay"
|
|
||||||
|
|
||||||
android:visibility="gone">
|
|
||||||
|
|
||||||
<android.support.v7.widget.Toolbar
|
|
||||||
android:id="@+id/toolbar"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:background="@color/read_dialog_bg"
|
|
||||||
android:fitsSystemWindows="true"
|
|
||||||
android:minHeight="?attr/actionBarSize"
|
|
||||||
app:popupTheme="@style/AppTheme.PopupOverlay" />
|
|
||||||
|
|
||||||
</android.support.design.widget.AppBarLayout>
|
|
||||||
|
|
||||||
<!--<LinearLayout-->
|
<!--<LinearLayout-->
|
||||||
<!--android:id="@+id/ll_status"-->
|
<!--android:id="@+id/ll_status"-->
|
||||||
|
|
Loading…
Reference in New Issue