将书签修改为本地存储

old
zlj 6 years ago
parent ca7091a7e6
commit 32c909adb8
  1. 2
      app/src/main/assets/litepal.xml
  2. 70
      app/src/main/java/com/novel/read/activity/NovelReadActivity.kt
  3. 15
      app/src/main/java/com/novel/read/adapter/MarkAdapter.java
  4. 17
      app/src/main/java/com/novel/read/model/db/BookSignTable.java
  5. 15
      app/src/main/java/com/novel/read/model/db/BookSignTable.kt
  6. 123
      app/src/main/java/com/novel/read/model/db/dbManage/BookRepository.java
  7. 4
      app/src/main/java/com/novel/read/service/DownloadService.java
  8. 11
      app/src/main/res/values-night/strings.xml
  9. 11
      app/src/main/res/values-zh-rTW-night/strings.xml
  10. 11
      app/src/main/res/values-zh-rTW/strings.xml
  11. 11
      app/src/main/res/values/strings.xml

@ -2,7 +2,7 @@
<litepal> <litepal>
<dbname value="readDb" /> <dbname value="readDb" />
<version value="6" /> <version value="7" />
<list> <list>
<!--搜索记录表--> <!--搜索记录表-->

@ -28,13 +28,16 @@ import com.novel.read.adapter.MarkAdapter
import com.novel.read.base.NovelBaseActivity import com.novel.read.base.NovelBaseActivity
import com.novel.read.constants.Constant import com.novel.read.constants.Constant
import com.novel.read.constants.Constant.ResultCode.Companion.RESULT_IS_COLLECTED import com.novel.read.constants.Constant.ResultCode.Companion.RESULT_IS_COLLECTED
import com.novel.read.event.* import com.novel.read.event.BookArticleEvent
import com.novel.read.event.ErrorChapterEvent
import com.novel.read.event.FinishChapterEvent
import com.novel.read.event.RxBus
import com.novel.read.http.AccountManager import com.novel.read.http.AccountManager
import com.novel.read.model.db.BookChapterBean import com.novel.read.model.db.BookChapterBean
import com.novel.read.model.db.BookSignTable
import com.novel.read.model.db.CollBookBean import com.novel.read.model.db.CollBookBean
import com.novel.read.model.db.DownloadTaskBean import com.novel.read.model.db.DownloadTaskBean
import com.novel.read.model.db.dbManage.BookRepository import com.novel.read.model.db.dbManage.BookRepository
import com.novel.read.model.protocol.MarkResp
import com.novel.read.service.DownloadMessage import com.novel.read.service.DownloadMessage
import com.novel.read.service.DownloadService import com.novel.read.service.DownloadService
import com.novel.read.utlis.BrightnessUtils import com.novel.read.utlis.BrightnessUtils
@ -53,6 +56,9 @@ import kotlinx.android.synthetic.main.layout_light.*
import kotlinx.android.synthetic.main.layout_read_mark.* import kotlinx.android.synthetic.main.layout_read_mark.*
import java.util.* import java.util.*
/**
* 阅读页📕
*/
class NovelReadActivity : NovelBaseActivity(), DownloadService.OnDownloadListener { class NovelReadActivity : NovelBaseActivity(), DownloadService.OnDownloadListener {
private var mCategoryAdapter: CategoryAdapter? = null private var mCategoryAdapter: CategoryAdapter? = null
@ -60,7 +66,7 @@ class NovelReadActivity : NovelBaseActivity(), DownloadService.OnDownloadListene
private var mCurrentChapter: TxtChapter? = null //当前章节 private var mCurrentChapter: TxtChapter? = null //当前章节
private var currentChapter = 0 private var currentChapter = 0
private var mMarkAdapter: MarkAdapter? = null private var mMarkAdapter: MarkAdapter? = null
private val mMarks = ArrayList<MarkResp.SignBean>() private val mMarks = ArrayList<BookSignTable>()
private lateinit var mPageLoader: PageLoader private lateinit var mPageLoader: PageLoader
private var mTopInAnim: Animation? = null private var mTopInAnim: Animation? = null
private var mTopOutAnim: Animation? = null private var mTopOutAnim: Animation? = null
@ -298,8 +304,13 @@ class NovelReadActivity : NovelBaseActivity(), DownloadService.OnDownloadListene
tvAddMark.setOnClickListener { tvAddMark.setOnClickListener {
if (mCurrentChapter != null) { if (mCurrentChapter != null) {
mMarkAdapter!!.edit = false mMarkAdapter!!.edit = false
AccountManager.getInstance() if (BookRepository.getInstance().getSignById(mCurrentChapter!!.chapterId)) {
ToastUtils.showNormalToast(this, getString(R.string.sign_exist))
return@setOnClickListener
}
BookRepository.getInstance()
.addSign(mBookId, mCurrentChapter!!.chapterId, mCurrentChapter!!.title) .addSign(mBookId, mCurrentChapter!!.chapterId, mCurrentChapter!!.title)
updateMark()
} }
} }
@ -307,7 +318,8 @@ class NovelReadActivity : NovelBaseActivity(), DownloadService.OnDownloadListene
if (mMarkAdapter!!.edit) { if (mMarkAdapter!!.edit) {
val sign = mMarkAdapter!!.selectList val sign = mMarkAdapter!!.selectList
if (sign != "") { if (sign != "") {
AccountManager.getInstance().deleteSign(sign) BookRepository.getInstance().deleteSign(sign)
updateMark()
} }
mMarkAdapter!!.edit = false mMarkAdapter!!.edit = false
} else { } else {
@ -478,9 +490,8 @@ class NovelReadActivity : NovelBaseActivity(), DownloadService.OnDownloadListene
@Subscribe @Subscribe
fun getBookArticle(event: BookArticleEvent) { fun getBookArticle(event: BookArticleEvent) {
Log.e(TAG, "getBookArticle: ")
if (event.isFail) { if (event.isFail) {
//获取章节失败处理
} else { } else {
val chapterBeans = event.result!!.chapterBean val chapterBeans = event.result!!.chapterBean
mPageLoader.collBook.bookChapters = chapterBeans mPageLoader.collBook.bookChapters = chapterBeans
@ -511,38 +522,9 @@ class NovelReadActivity : NovelBaseActivity(), DownloadService.OnDownloadListene
} }
private fun updateMark() { private fun updateMark() {
AccountManager.getInstance().getSignList(mBookId) mMarks.clear()
} mMarks.addAll(BookRepository.getInstance().getSign(mBookId))
mMarkAdapter!!.notifyDataSetChanged()
@Subscribe
fun addSign(event: AddBookSignEvent) {
if (event.isFail) {
ToastUtils.showNormalToast(this, "添加书签失败,请检查网络设置")
} else {
ToastUtils.showNormalToast(this, "添加书签成功")
updateMark()
}
}
@Subscribe
fun deleteSigin(event: DeleteBookSignEvent) {
if (event.isFail) {
ToastUtils.showNormalToast(this, event.er!!.msg)
} else {
ToastUtils.showNormalToast(this, event.result!!.msg)
updateMark()
}
}
@Subscribe
fun getSignList(event: GetBookSignEvent) {
if (event.isFail) {
ToastUtils.showNormalToast(this, "获取书签失败,请检查网络设置")
} else {
mMarks.clear()
mMarks.addAll(event.result!!.sign)
mMarkAdapter!!.notifyDataSetChanged()
}
} }
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
@ -597,7 +579,6 @@ class NovelReadActivity : NovelBaseActivity(), DownloadService.OnDownloadListene
val result = Intent() val result = Intent()
result.putExtra(RESULT_IS_COLLECTED, isCollected) result.putExtra(RESULT_IS_COLLECTED, isCollected)
setResult(Activity.RESULT_OK, result) setResult(Activity.RESULT_OK, result)
// 退出
super.onBackPressed() super.onBackPressed()
} }
@ -632,12 +613,6 @@ class NovelReadActivity : NovelBaseActivity(), DownloadService.OnDownloadListene
} }
override fun onDownloadChange(pos: Int, status: Int, msg: String) { override fun onDownloadChange(pos: Int, status: Int, msg: String) {
// DownloadTaskBean bean = mDownloadAdapter.getItem(pos);
// bean.setStatus(status);
// if (DownloadTaskBean.STATUS_LOADING == status){
// bean.setCurrentChapter(Integer.valueOf(msg));
// }
// mDownloadAdapter.notifyItemChanged(pos);
Log.e(TAG, "onDownloadChange: $pos $status $msg") Log.e(TAG, "onDownloadChange: $pos $status $msg")
if (msg == getString(R.string.download_success) || msg == getString(R.string.download_error)) { if (msg == getString(R.string.download_success) || msg == getString(R.string.download_error)) {
@ -662,9 +637,6 @@ class NovelReadActivity : NovelBaseActivity(), DownloadService.OnDownloadListene
override fun onDownloadResponse(pos: Int, status: Int) { override fun onDownloadResponse(pos: Int, status: Int) {
// DownloadTaskBean bean = mDownloadAdapter.getItem(pos);
// bean.setStatus(status);
// mDownloadAdapter.notifyItemChanged(pos);
Log.e(TAG, "onDownloadResponse: $pos $status") Log.e(TAG, "onDownloadResponse: $pos $status")
} }

@ -12,6 +12,7 @@ import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.novel.read.R; import com.novel.read.R;
import com.novel.read.model.db.BookSignTable;
import com.novel.read.model.protocol.MarkResp; import com.novel.read.model.protocol.MarkResp;
import java.util.List; import java.util.List;
@ -19,10 +20,10 @@ import java.util.List;
public class MarkAdapter extends RecyclerView.Adapter{ public class MarkAdapter extends RecyclerView.Adapter{
private Context mContext; private Context mContext;
private List<MarkResp.SignBean> mList; private List<BookSignTable> mList;
private boolean edit; private boolean edit;
public MarkAdapter(List<MarkResp.SignBean> mList) { public MarkAdapter(List<BookSignTable> mList) {
this.mList = mList; this.mList = mList;
} }
@ -52,7 +53,7 @@ public class MarkAdapter extends RecyclerView.Adapter{
((ViewHolder) viewHolder).mCheck.setVisibility(View.GONE); ((ViewHolder) viewHolder).mCheck.setVisibility(View.GONE);
} }
((ViewHolder) viewHolder).mTvMark.setText(mList.get(i).getContent()); ((ViewHolder) viewHolder).mTvMark.setText(mList.get(i).getContent());
((ViewHolder) viewHolder).mCheck.setChecked(mList.get(i).isEdit()); ((ViewHolder) viewHolder).mCheck.setChecked(mList.get(i).getEdit());
} }
} }
@ -84,11 +85,11 @@ public class MarkAdapter extends RecyclerView.Adapter{
public String getSelectList() { public String getSelectList() {
StringBuilder signs = new StringBuilder(); StringBuilder signs = new StringBuilder();
for (int i = 0; i < mList.size(); i++) { for (int i = 0; i < mList.size(); i++) {
if (mList.get(i).isEdit()) { if (mList.get(i).getEdit()) {
if (signs.equals("")){ if (signs.toString().equals("")){
signs.append(mList.get(i).getId()); signs.append(mList.get(i).getArticleId());
}else { }else {
signs.append(",").append(mList.get(i).getId()); signs.append(",").append(mList.get(i).getArticleId());
} }
} }
} }

@ -1,17 +0,0 @@
package com.novel.read.model.db;
import org.litepal.crud.LitePalSupport;
import java.io.Serializable;
/**
* create by zlj on 2019/11/6
* describe: 书签数据库
*/
public class BookSignTable extends LitePalSupport implements Serializable {
private String bookId;
private String content;
private long saveTime;
}

@ -0,0 +1,15 @@
package com.novel.read.model.db
import org.litepal.crud.LitePalSupport
import java.io.Serializable
/**
* create by zlj on 2019/11/6
* describe: 书签数据库
*/
class BookSignTable(val bookId: String, val articleId: String, val content: String) :
LitePalSupport(), Serializable {
val saveTime: Long = System.currentTimeMillis()
var edit: Boolean = false
}

@ -6,6 +6,7 @@ import android.util.Log;
import com.novel.read.constants.Constant; import com.novel.read.constants.Constant;
import com.novel.read.model.db.BookChapterBean; import com.novel.read.model.db.BookChapterBean;
import com.novel.read.model.db.BookRecordBean; import com.novel.read.model.db.BookRecordBean;
import com.novel.read.model.db.BookSignTable;
import com.novel.read.model.db.ChapterInfoBean; import com.novel.read.model.db.ChapterInfoBean;
import com.novel.read.model.db.CollBookBean; import com.novel.read.model.db.CollBookBean;
import com.novel.read.model.db.DownloadTaskBean; import com.novel.read.model.db.DownloadTaskBean;
@ -35,7 +36,7 @@ import io.reactivex.SingleOnSubscribe;
/** /**
* Created by newbiechen on 17-5-8. * Created by newbiechen on 17-5-8.
* 存储关于书籍内容的信息(CollBook(收藏书籍),BookChapter(书籍列表),ChapterInfo(书籍章节),BookRecord(记录)) * 存储关于书籍内容的信息(CollBook(收藏书籍),BookChapter(书籍列表),ChapterInfo(书籍章节),BookRecord(记录),BookSignTable书签)
*/ */
public class BookRepository { public class BookRepository {
@ -59,15 +60,6 @@ public class BookRepository {
//存储已收藏书籍 //存储已收藏书籍
public void saveCollBookWithAsync(CollBookBean bean) { public void saveCollBookWithAsync(CollBookBean bean) {
// bean.saveAsync().listen(new SaveCallback() {
// @Override
// public void onFinish(boolean success) {
// System.out.println(success);
// }
// });
// LitePal.saveAll(bean.getBookChapters());
// bean.saveOrUpdate("bookId=?", bean.getId());
// bean.saveOrUpdateAsync("bookId=?", bean.getId());
bean.saveOrUpdate("bookId=?", bean.getId()); bean.saveOrUpdate("bookId=?", bean.getId());
for (int i = 0; i < bean.getBookChapters().size(); i++) { for (int i = 0; i < bean.getBookChapters().size(); i++) {
bean.getBookChapters().get(i).setCollBookBean(bean); bean.getBookChapters().get(i).setCollBookBean(bean);
@ -78,7 +70,6 @@ public class BookRepository {
Log.e(TAG, "saveCollBookWithAsync: " + success); Log.e(TAG, "saveCollBookWithAsync: " + success);
} }
}); });
// LitePal.saveAll(bean.getBookChapters());
} }
/** /**
@ -105,32 +96,20 @@ public class BookRepository {
} }
public void saveCollBook(CollBookBean bean) { public void saveCollBook(CollBookBean bean) {
// mCollBookDao.insertOrReplace(bean);
ContentValues values = new ContentValues(); ContentValues values = new ContentValues();
values.put("isUpdate", bean.isUpdate()); values.put("isUpdate", bean.isUpdate());
values.put("lastRead", bean.getLastRead()); values.put("lastRead", bean.getLastRead());
values.put("lastChapter", bean.getLastChapter()); values.put("lastChapter", bean.getLastChapter());
LitePal.updateAll(CollBookBean.class, values, "bookId=?", bean.getId()); LitePal.updateAll(CollBookBean.class, values, "bookId=?", bean.getId());
// bean.setBookChapters(new ArrayList<>());
// bean.saveOrUpdate("bookId=?", bean.getId());
// for (int i = 0; i < bean.getBookChapters().size(); i++) {
// bean.getBookChapters().get(i).setCollBookBean(bean);
// }
// LitePal.saveAllAsync(bean.getBookChapters()).listen(new SaveCallback() {
// @Override
// public void onFinish(boolean success) {
// Log.e(TAG, "saveCollBookWithAsync: " + success);
// }
// });
} }
public void saveCollBooks(List<CollBookBean> beans) { public void saveCollBooks(List<CollBookBean> beans) {
for (int i = 0; i <beans.size() ; i++) { for (int i = 0; i < beans.size(); i++) {
ContentValues values = new ContentValues(); ContentValues values = new ContentValues();
values.put("isUpdate", beans.get(i).isUpdate()); values.put("isUpdate", beans.get(i).isUpdate());
values.put("lastRead", beans.get(i).getLastRead()); values.put("lastRead", beans.get(i).getLastRead());
values.put("lastChapter", beans.get(i).getLastChapter()); values.put("lastChapter", beans.get(i).getLastChapter());
values.put("updated",beans.get(i).getUpdated()); values.put("updated", beans.get(i).getUpdated());
LitePal.updateAll(CollBookBean.class, values, "bookId=?", beans.get(i).getId()); LitePal.updateAll(CollBookBean.class, values, "bookId=?", beans.get(i).getId());
} }
} }
@ -141,25 +120,11 @@ public class BookRepository {
* @param beans * @param beans
*/ */
public void saveBookChaptersWithAsync(List<BookChapterBean> beans, CollBookBean collBookBean) { public void saveBookChaptersWithAsync(List<BookChapterBean> beans, CollBookBean collBookBean) {
// //先删除旧的章节,再异步储存新的章节
// LitePal.deleteAll(BookChapterBean.class, "bookId=?", collBookBean.getId());
collBookBean.saveOrUpdate("bookId=?", collBookBean.getId()); collBookBean.saveOrUpdate("bookId=?", collBookBean.getId());
for (int i = 0; i <collBookBean.getBookChapters().size() ; i++) { for (int i = 0; i < collBookBean.getBookChapters().size(); i++) {
collBookBean.getBookChapters().get(i).setCollBookBean(collBookBean); collBookBean.getBookChapters().get(i).setCollBookBean(collBookBean);
collBookBean.getBookChapters().get(i).saveOrUpdateAsync("bookId=?", collBookBean.getId()); collBookBean.getBookChapters().get(i).saveOrUpdateAsync("bookId=?", collBookBean.getId());
} }
// LitePal.saveAllAsync(beans).listen(new SaveCallback() {
// @Override
// public void onFinish(boolean success) {
// if (success) {
//
// }
// Log.d(TAG, "saveBookChaptersWithAsync: " + "进行存储" + success);
// }
// });
} }
/** /**
@ -185,8 +150,6 @@ public class BookRepository {
} }
public void saveBookRecord(BookRecordBean bean) { public void saveBookRecord(BookRecordBean bean) {
// mSession.getBookRecordBeanDao()
// .insertOrReplace(bean);
bean.saveOrUpdateAsync("bookId=?", bean.getBookId()).listen(new SaveCallback() { bean.saveOrUpdateAsync("bookId=?", bean.getBookId()).listen(new SaveCallback() {
@Override @Override
public void onFinish(boolean success) { public void onFinish(boolean success) {
@ -207,10 +170,6 @@ public class BookRepository {
public List<CollBookBean> getCollBooks() { public List<CollBookBean> getCollBooks() {
// return mCollBookDao
// .queryBuilder()
// .orderDesc(CollBookBeanDao.Properties.LastRead)
// .list();
List<CollBookBean> collBookBeans; List<CollBookBean> collBookBeans;
if (SpUtil.getBooleanValue(Constant.BookSort, false)) { //默认根据阅读时间排序 if (SpUtil.getBooleanValue(Constant.BookSort, false)) { //默认根据阅读时间排序
collBookBeans = LitePal.order("updated desc").find(CollBookBean.class); collBookBeans = LitePal.order("updated desc").find(CollBookBean.class);
@ -223,17 +182,6 @@ public class BookRepository {
//获取书籍列表 //获取书籍列表
public List<BookChapterBean> getBookChaptersInRx(String bookId) { public List<BookChapterBean> getBookChaptersInRx(String bookId) {
// return Single.create(new SingleOnSubscribe<List<BookChapterBean>>() {
// @Override
// public void subscribe(SingleEmitter<List<BookChapterBean>> e) throws Exception {
// List<BookChapterBean> beans = mSession
// .getBookChapterBeanDao()
// .queryBuilder()
// .where(BookChapterBeanDao.Properties.BookId.eq(bookId))
// .list();
// e.onSuccess(beans);
// }
// });
List<CollBookBean> bookBeans = LitePal.where("bookId=?", bookId).find(CollBookBean.class, true); List<CollBookBean> bookBeans = LitePal.where("bookId=?", bookId).find(CollBookBean.class, true);
if (bookBeans != null && bookBeans.size() > 0) { if (bookBeans != null && bookBeans.size() > 0) {
return bookBeans.get(0).getBookChapters(); return bookBeans.get(0).getBookChapters();
@ -244,10 +192,6 @@ public class BookRepository {
//获取阅读记录 //获取阅读记录
public BookRecordBean getBookRecord(String bookId) { public BookRecordBean getBookRecord(String bookId) {
// return mSession.getBookRecordBeanDao()
// .queryBuilder()
// .where(BookRecordBeanDao.Properties.BookId.eq(bookId))
// .unique();
List<BookRecordBean> beans = LitePal.where("bookId=?", bookId).find(BookRecordBean.class); List<BookRecordBean> beans = LitePal.where("bookId=?", bookId).find(BookRecordBean.class);
if (beans != null && beans.size() > 0) { if (beans != null && beans.size() > 0) {
return beans.get(0); return beans.get(0);
@ -344,28 +288,55 @@ public class BookRepository {
public void saveDownloadTask(DownloadTaskBean bean) { public void saveDownloadTask(DownloadTaskBean bean) {
bean.saveOrUpdate("bookId=?",bean.getBookId()); bean.saveOrUpdate("bookId=?", bean.getBookId());
CollBookBean collBookBean = bean.getCollBookBean(); CollBookBean collBookBean = bean.getCollBookBean();
for (int i = 0; i <bean.getBookChapters().size() ; i++) { for (int i = 0; i < bean.getBookChapters().size(); i++) {
bean.getBookChapters().get(i).setDownloadTaskBean(bean); bean.getBookChapters().get(i).setDownloadTaskBean(bean);
bean.getBookChapters().get(i).setCollBookBean(collBookBean); bean.getBookChapters().get(i).setCollBookBean(collBookBean);
bean.getBookChapters().get(i).saveOrUpdate("chapterId=?", bean.getBookChapters().get(i).getId()); bean.getBookChapters().get(i).saveOrUpdate("chapterId=?", bean.getBookChapters().get(i).getId());
} }
}
/**
* 获取本地书签
*
* @param bookId 书籍Id
* @return 书签
*/
public List<BookSignTable> getSign(String bookId) {
return LitePal.where("bookId=?", bookId).find(BookSignTable.class);
}
/**
* 添加书签
*
* @param bookId bookId
* @param articleId articleId
* @param content content
*/
public void addSign(String bookId, String articleId, String content) {
BookSignTable bookSignTable = new BookSignTable(bookId, articleId, content);
bookSignTable.saveOrUpdate();
}
// //先删除旧的章节,再异步储存新的章节 /**
// LitePal.deleteAll(BookChapterBean.class, "taskName=?",bean.getTaskName()); * 删除书签
// *
// LitePal.saveAllAsync(bean.getBookChapters()).listen(new SaveCallback() { * @param articleId articleId
// @Override */
// public void onFinish(boolean success) { public void deleteSign(String articleId) {
// if (success) { LitePal.deleteAll(BookSignTable.class, "articleId=?", articleId);
// bean.setBookChapters(bean.getBookChapters()); }
// bean.saveOrUpdate("taskName=?",bean.getTaskName());
// } /**
// Log.d(TAG, "saveBookChaptersWithAsync: " + "进行存储" + success); * 根据id查询书签是否存在
// } *
// }); * @param articleId
*/
public boolean getSignById(String articleId) {
List<BookSignTable> mList = LitePal.where("articleId=?", articleId).find(BookSignTable.class);
return mList.size() > 0;
} }
} }

@ -166,7 +166,7 @@ public class DownloadService extends BaseService {
//删除掉已经完成的章节 //删除掉已经完成的章节
List<BookChapterBean> remainChapterBeans = newTask.getBookChapterList().subList(downloadTask.getLastChapter(), newTask.getLastChapter()); List<BookChapterBean> remainChapterBeans = newTask.getBookChapterList().subList(downloadTask.getLastChapter(), newTask.getLastChapter());
String taskName = newTask.getTaskName() String taskName = newTask.getTaskName()
+ getString(R.string.nb_download_chapter_scope, + getString(R.string.download_chapter_scope,
downloadTask.getLastChapter(), newTask.getLastChapter()); downloadTask.getLastChapter(), newTask.getLastChapter());
//重置任务 //重置任务
newTask.setBookChapters(remainChapterBeans); newTask.setBookChapters(remainChapterBeans);
@ -187,7 +187,7 @@ public class DownloadService extends BaseService {
//重置名字 //重置名字
if (!isExist) { if (!isExist) {
String taskName = newTask.getTaskName() String taskName = newTask.getTaskName()
+ getString(R.string.nb_download_chapter_scope, + getString(R.string.download_chapter_scope,
1, newTask.getLastChapter()); 1, newTask.getLastChapter());
newTask.setTaskName(taskName); newTask.setTaskName(taskName);
postMessage(getString(R.string.cache_success)); postMessage(getString(R.string.cache_success));

@ -92,6 +92,7 @@
<string name="delete">删除</string> <string name="delete">删除</string>
<string name="add_bookmark">新增书签</string> <string name="add_bookmark">新增书签</string>
<string name="clear_bookmark">清除</string> <string name="clear_bookmark">清除</string>
<string name="sign_exist">当前章节书签已存在</string>
<string name="like_book">喜欢本书就加入书架吧</string> <string name="like_book">喜欢本书就加入书架吧</string>
<string name="please_add_book">请先添加书籍</string> <string name="please_add_book">请先添加书籍</string>
@ -150,9 +151,9 @@
<string name="none"></string> <string name="none"></string>
<!--DownloadTask:书籍下载--> <!--DownloadTask:书籍下载-->
<string name="nb.download.add_succeed">成功添加到下载列表</string> <string name="download_add_succeed">成功添加到下载列表</string>
<string name="nb.download.exist">该任务已存在</string> <string name="download_exist">该任务已存在</string>
<string name="nb.download.load_all">已缓存全部章节</string> <string name="download_load_all">已缓存全部章节</string>
<string name="nb.download.progress">%1$d/%2$d</string> <string name="download_progress">%1$d/%2$d</string>
<string name="nb.download.chapter_scope">(%1$d-%2$d章)</string> <string name="download_chapter_scope">(%1$d-%2$d章)</string>
</resources> </resources>

@ -89,6 +89,7 @@
<string name="delete">删除</string> <string name="delete">删除</string>
<string name="add_bookmark">新增書籤</string> <string name="add_bookmark">新增書籤</string>
<string name="clear_bookmark">清除</string> <string name="clear_bookmark">清除</string>
<string name="sign_exist">当前章节书签已存在</string>
<string name="like_book">喜歡本書就加入書架吧</string> <string name="like_book">喜歡本書就加入書架吧</string>
<string name="please_add_book">請先添加書籍</string> <string name="please_add_book">請先添加書籍</string>
@ -147,10 +148,10 @@
<string name="none"></string> <string name="none"></string>
<!--DownloadTask:书籍下载--> <!--DownloadTask:书籍下载-->
<string name="nb.download.add_succeed">成功添加到下載列表</string> <string name="download_add_succeed">成功添加到下載列表</string>
<string name="nb.download.exist">該任務已存在</string> <string name="download_exist">該任務已存在</string>
<string name="nb.download.load_all">以緩存全部章節</string> <string name="download_load_all">以緩存全部章節</string>
<string name="nb.download.progress">%1$d/%2$d</string> <string name="download_progress">%1$d/%2$d</string>
<string name="nb.download.chapter_scope">(%1$d-%2$d章)</string> <string name="download_chapter_scope">(%1$d-%2$d章)</string>
</resources> </resources>

@ -89,6 +89,7 @@
<string name="delete">删除</string> <string name="delete">删除</string>
<string name="add_bookmark">新增書籤</string> <string name="add_bookmark">新增書籤</string>
<string name="clear_bookmark">清除</string> <string name="clear_bookmark">清除</string>
<string name="sign_exist">当前章节书签已存在</string>
<string name="like_book">喜歡本書就加入書架吧</string> <string name="like_book">喜歡本書就加入書架吧</string>
<string name="please_add_book">請先添加書籍</string> <string name="please_add_book">請先添加書籍</string>
@ -149,10 +150,10 @@
<string name="none"></string> <string name="none"></string>
<!--DownloadTask:书籍下载--> <!--DownloadTask:书籍下载-->
<string name="nb.download.add_succeed">成功添加到下載列表</string> <string name="download_add_succeed">成功添加到下載列表</string>
<string name="nb.download.exist">該任務已存在</string> <string name="download_exist">該任務已存在</string>
<string name="nb.download.load_all">以緩存全部章節</string> <string name="download_load_all">以緩存全部章節</string>
<string name="nb.download.progress">%1$d/%2$d</string> <string name="download_progress">%1$d/%2$d</string>
<string name="nb.download.chapter_scope">(%1$d-%2$d章)</string> <string name="download_chapter_scope">(%1$d-%2$d章)</string>
</resources> </resources>

@ -92,6 +92,7 @@
<string name="delete">删除</string> <string name="delete">删除</string>
<string name="add_bookmark">新增书签</string> <string name="add_bookmark">新增书签</string>
<string name="clear_bookmark">清除</string> <string name="clear_bookmark">清除</string>
<string name="sign_exist">当前章节书签已存在</string>
<string name="like_book">喜欢本书就加入书架吧</string> <string name="like_book">喜欢本书就加入书架吧</string>
<string name="please_add_book">请先添加书籍</string> <string name="please_add_book">请先添加书籍</string>
@ -152,9 +153,9 @@
<string name="none"></string> <string name="none"></string>
<!--DownloadTask:书籍下载--> <!--DownloadTask:书籍下载-->
<string name="nb.download.add_succeed">成功添加到下载列表</string> <string name="download_add_succeed">成功添加到下载列表</string>
<string name="nb.download.exist">该任务已存在</string> <string name="download_exist">该任务已存在</string>
<string name="nb.download.load_all">已缓存全部章节</string> <string name="download_load_all">已缓存全部章节</string>
<string name="nb.download.progress">%1$d/%2$d</string> <string name="download_progress">%1$d/%2$d</string>
<string name="nb.download.chapter_scope">(%1$d-%2$d章)</string> <string name="download_chapter_scope">(%1$d-%2$d章)</string>
</resources> </resources>

Loading…
Cancel
Save