leiyun před 4 roky
rodič
revize
0584b8b323
7 změnil soubory, kde provedl 111 přidání a 40 odebrání
  1. +7
    -1
      app/src/main/java/com/yzx/webebook/MainActivity.kt
  2. +16
    -7
      app/src/main/java/com/yzx/webebook/activity/PDFViewActivity.kt
  3. +14
    -8
      app/src/main/java/com/yzx/webebook/activity/ReadActivity.java
  4. +8
    -0
      app/src/main/java/com/yzx/webebook/activity/WebActivity.kt
  5. +1
    -0
      app/src/main/java/com/yzx/webebook/model/Book.kt
  6. +64
    -24
      app/src/main/java/com/yzx/webebook/presenter/ReadPresenter.java
  7. +1
    -0
      app/src/main/java/com/yzx/webebook/presenter/ReadView.java

+ 7
- 1
app/src/main/java/com/yzx/webebook/MainActivity.kt Zobrazit soubor

@@ -50,7 +50,9 @@ class MainActivity : BaseActivity<ReadPresenter>(),ReadView {
Config.APP_NAME = "家校互通(测试)" Config.APP_NAME = "家校互通(测试)"
Config.BASE_URL = "http://192.168.69.99:9009" Config.BASE_URL = "http://192.168.69.99:9009"
Config.M_URL = "http://192.168.69.99:8098" Config.M_URL = "http://192.168.69.99:8098"
User.clearUserInfo()
if (BuildConfig.BUILD_TYPE != "debug") {
User.clearUserInfo()
}
startActivity<HomeActivity>() startActivity<HomeActivity>()
} }
btn3.setOnClickListener { btn3.setOnClickListener {
@@ -201,5 +203,9 @@ class MainActivity : BaseActivity<ReadPresenter>(),ReadView {
// startActivity<ReadActivity>("book_id" to "xxjs") // startActivity<ReadActivity>("book_id" to "xxjs")




}

override fun onProgressSuccess(progress: Float) {

} }
} }

+ 16
- 7
app/src/main/java/com/yzx/webebook/activity/PDFViewActivity.kt Zobrazit soubor

@@ -28,6 +28,7 @@ class PDFViewActivity : BaseActivity<ReadPresenter>(), ReadView {
var currPage = 0 var currPage = 0
var total = 0 var total = 0
var oldPosition = 0 var oldPosition = 0
var lastProgress = 0f


//控制屏幕常亮 //控制屏幕常亮
private var mWakeLock: WakeLock? = null private var mWakeLock: WakeLock? = null
@@ -46,6 +47,7 @@ class PDFViewActivity : BaseActivity<ReadPresenter>(), ReadView {
loadPdf() loadPdf()
} }


mPresenter?.getReadProgress(mRealBookId, mReadTaskId)
} }


private fun loadPdf() { private fun loadPdf() {
@@ -86,8 +88,8 @@ class PDFViewActivity : BaseActivity<ReadPresenter>(), ReadView {
} }


}) })
val pos = mBookRecord?.pagePos?:0;
pdf.currentItem =pos
val pos = mBookRecord?.pagePos ?: 0;
pdf.currentItem = pos
currPage = pos currPage = pos
} }


@@ -133,6 +135,7 @@ class PDFViewActivity : BaseActivity<ReadPresenter>(), ReadView {
super.onResume() super.onResume()
mWakeLock?.acquire() mWakeLock?.acquire()
} }

override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
mWakeLock?.release() mWakeLock?.release()
@@ -140,12 +143,14 @@ class PDFViewActivity : BaseActivity<ReadPresenter>(), ReadView {
if (mBookRecord != null) { if (mBookRecord != null) {
BookRepository.getInstance() BookRepository.getInstance()
.saveBookRecord(mBookRecord) .saveBookRecord(mBookRecord)
if (mBookRecord!!.pagePos > oldPosition) {

val currProgress = getPercent(
(mBookRecord!!.pagePos + 1).toFloat(),
total.toFloat()
).toFloat()
if (mBookRecord!!.pagePos > oldPosition && currProgress > lastProgress) {
mPresenter?.updateReadProgress( mPresenter?.updateReadProgress(
mRealBookId, mReadTaskId, getPercent(
(mBookRecord!!.pagePos + 1).toFloat(),
total.toFloat()
)
mRealBookId, mReadTaskId, currProgress.toString()
) )
} }
} }
@@ -159,4 +164,8 @@ class PDFViewActivity : BaseActivity<ReadPresenter>(), ReadView {


override fun showCategory(localId: String?) { override fun showCategory(localId: String?) {
} }

override fun onProgressSuccess(progress: Float) {
lastProgress = progress
}
} }

+ 14
- 8
app/src/main/java/com/yzx/webebook/activity/ReadActivity.java Zobrazit soubor

@@ -33,6 +33,7 @@ import androidx.core.content.ContextCompat;
import androidx.core.view.GravityCompat; import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout; import androidx.drawerlayout.widget.DrawerLayout;


import com.blankj.utilcode.util.NumberUtils;
import com.google.android.material.appbar.AppBarLayout; import com.google.android.material.appbar.AppBarLayout;
import com.yzx.webebook.R; import com.yzx.webebook.R;
import com.yzx.webebook.activity.base.BaseActivity; import com.yzx.webebook.activity.base.BaseActivity;
@@ -222,8 +223,11 @@ public class ReadActivity extends BaseActivity<ReadPresenter> implements ReadVie
mReadTaskId = getIntent().getStringExtra("read_task_id"); mReadTaskId = getIntent().getStringExtra("read_task_id");
mRealBookId = getIntent().getStringExtra("real_book_id"); mRealBookId = getIntent().getStringExtra("real_book_id");
loadBookData(id); loadBookData(id);

getMPresenter().getReadProgress(mRealBookId, mReadTaskId);
} }



private void loadBookData(String id) { private void loadBookData(String id) {
mCollBook = BookRepository.getInstance().getCollBook(id); mCollBook = BookRepository.getInstance().getCollBook(id);


@@ -338,12 +342,6 @@ public class ReadActivity extends BaseActivity<ReadPresenter> implements ReadVie
mSbChapterProgress.post( mSbChapterProgress.post(
() -> { () -> {
mSbChapterProgress.setProgress(pos); mSbChapterProgress.setProgress(pos);
int max = mSbChapterProgress.getMax() + 1;
float progress = (pos + 1) * 1.0f / max;
if (progress > 0 && progress > lastProgress) {
lastProgress = progress;

}
} }
); );
} }
@@ -666,8 +664,11 @@ public class ReadActivity extends BaseActivity<ReadPresenter> implements ReadVie
saveBookInfo(); saveBookInfo();
mPageLoader.saveRecord(); mPageLoader.saveRecord();
} }
if(getMPresenter()!=null && mPageLoader!=null){
getMPresenter().updateReadProgress(mRealBookId, mReadTaskId, String.valueOf(mPageLoader.getPercent()));
if (getMPresenter() != null && mPageLoader != null) {
float currProgress = Float.parseFloat(mPageLoader.getPercent());
if (currProgress > lastProgress) {
getMPresenter().updateReadProgress(mRealBookId, mReadTaskId, String.valueOf(mPageLoader.getPercent()));
}
} }
} }


@@ -721,4 +722,9 @@ public class ReadActivity extends BaseActivity<ReadPresenter> implements ReadVie


} }
} }

@Override
public void onProgressSuccess(float progress) {
lastProgress = progress;
}
} }

+ 8
- 0
app/src/main/java/com/yzx/webebook/activity/WebActivity.kt Zobrazit soubor

@@ -484,6 +484,10 @@ class YzxJavascriptInterface(var ctx: Activity) {


} }


override fun onProgressSuccess(progress: Float) {

}

override fun errorChapter() { override fun errorChapter() {


} }
@@ -531,6 +535,10 @@ class YzxJavascriptInterface(var ctx: Activity) {
} }
} }


override fun onProgressSuccess(progress: Float) {

}

}) })
presenter.loadCategory(bookTaskId) presenter.loadCategory(bookTaskId)
} }


+ 1
- 0
app/src/main/java/com/yzx/webebook/model/Book.kt Zobrazit soubor

@@ -7,6 +7,7 @@ class Book {
var book_file_id:String = "" var book_file_id:String = ""
var author:String = "" var author:String = ""
var read_requires:String = "" var read_requires:String = ""
var read_progress:Float = 0f
var volumes:MutableList<Volumes> = mutableListOf() var volumes:MutableList<Volumes> = mutableListOf()
} }




+ 64
- 24
app/src/main/java/com/yzx/webebook/presenter/ReadPresenter.java Zobrazit soubor

@@ -2,7 +2,11 @@ package com.yzx.webebook.presenter;


import android.util.Log; import android.util.Log;


import com.blankj.utilcode.util.FileIOUtils;
import com.blankj.utilcode.util.FileUtils;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.TimeUtils; import com.blankj.utilcode.util.TimeUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import com.lzy.okgo.OkGo; import com.lzy.okgo.OkGo;
@@ -19,8 +23,6 @@ import com.yzx.webebook.model.Volumes;
import com.yzx.webebook.model.bean.CollBookBean; import com.yzx.webebook.model.bean.CollBookBean;
import com.yzx.webebook.model.local.BookRepository; import com.yzx.webebook.model.local.BookRepository;
import com.yzx.webebook.presenter.base.BasePresenter; import com.yzx.webebook.presenter.base.BasePresenter;
import com.yzx.webebook.utils.FileUtils;
import com.yzx.webebook.utils.MD5Utils;
import com.yzx.webebook.widget.page.TxtChapter; import com.yzx.webebook.widget.page.TxtChapter;


import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -36,6 +38,34 @@ public class ReadPresenter extends BasePresenter<ReadView> {
super(view); super(view);
} }


public void getReadProgress(String bookId,String readTaskId){
User user = User.Companion.getUser();
String url = Config.INSTANCE.getBASE_URL() + "/parent/readTask/getBookWarehouseContent";
HttpHeaders headers = new HttpHeaders();
headers.put("phone", user.getPhone());
headers.put("token", user.getToken());
OkGo.<String>post(url)
.tag(this)
.params("id", bookId)
.params("read_task_id", readTaskId)
.headers(headers)
.execute(new StringCallback() {

@Override
public void onSuccess(Response<String> response) {
Gson gson = new Gson();
BaseBean<Book> bean = gson.fromJson(response.body(), new TypeToken<BaseBean<Book>>() {
}.getType());
getMView().onProgressSuccess(bean.getData().getRead_progress());
}

@Override
public void onError(Response<String> response) {
super.onError(response);
}
});
}



public void loadCategory(String bookTaskId) { public void loadCategory(String bookTaskId) {
User user = User.Companion.getUser(); User user = User.Companion.getUser();
@@ -64,36 +94,46 @@ public class ReadPresenter extends BasePresenter<ReadView> {
downloadBook(bean.getData(), bookTaskId); downloadBook(bean.getData(), bookTaskId);
} else { } else {
Book book = bean.getData(); Book book = bean.getData();
StringBuilder builder = new StringBuilder();
StringBuffer builder = new StringBuffer() ;
if (book.getVolumes().size() > 0) { if (book.getVolumes().size() > 0) {
for (Volumes volume : book.getVolumes()) { for (Volumes volume : book.getVolumes()) {
builder.append(volume.getTitle());
builder.append("----------");
builder.append("\r\n");
for (Sections section : volume.getSections()) { for (Sections section : volume.getSections()) {
builder.append(section.getTitle()); builder.append(section.getTitle());
builder.append("\r\n");
builder.append(section.getContent()); builder.append(section.getContent());
builder.append("\r\n");
} }
} }
} }
String filePath = FileUtils.writeTxtToFile(builder.toString(), NOTE_FOLDER_DIR, user.getUser_id() + "_" + bookTaskId + ".txt");
CollBookBean bookBean = new CollBookBean();
String localId = user.getUser_id() + "_" + bookTaskId;
bookBean.set_id(localId);
bookBean.setAuthor(book.getAuthor());
bookBean.setTitle(book.getBook_name());
bookBean.setShortIntro(book.getRead_requires());
bookBean.setLastChapter("开始阅读");
bookBean.setUpdate(true);
bookBean.setIsLocal(true);
bookBean.setLastRead(TimeUtils.getNowString());
bookBean.setUpdated(TimeUtils.getNowString());
bookBean.setCover(filePath);

List<CollBookBean> list = new ArrayList<CollBookBean>();
list.add(bookBean);
BookRepository.getInstance()
.saveCollBooks(list);

getMView().showCategory(localId);
LogUtils.d(builder);
LogUtils.d(builder.toString());
String filePath = NOTE_FOLDER_DIR + user.getUser_id() + "_" + bookTaskId + ".txt";
boolean success = FileUtils.createOrExistsFile(filePath);
boolean whiteSuccess = FileIOUtils.writeFileFromString(new File(filePath),builder.toString());
if(success && whiteSuccess){
CollBookBean bookBean = new CollBookBean();
String localId = user.getUser_id() + "_" + bookTaskId;
bookBean.set_id(localId);
bookBean.setAuthor(book.getAuthor());
bookBean.setTitle(book.getBook_name());
bookBean.setShortIntro(book.getRead_requires());
bookBean.setLastChapter("开始阅读");
bookBean.setUpdate(true);
bookBean.setIsLocal(true);
bookBean.setLastRead(TimeUtils.getNowString());
bookBean.setUpdated(TimeUtils.getNowString());
bookBean.setCover(filePath);

List<CollBookBean> list = new ArrayList<CollBookBean>();
list.add(bookBean);
BookRepository.getInstance()
.saveCollBooks(list);
getMView().showCategory(localId);
}else{
ToastUtils.showLong("书籍信息读取失败!");
}
} }
} }




+ 1
- 0
app/src/main/java/com/yzx/webebook/presenter/ReadView.java Zobrazit soubor

@@ -11,4 +11,5 @@ public interface ReadView extends IView {
void showCategory(String localId); void showCategory(String localId);
void finishChapter(); void finishChapter();
void errorChapter(); void errorChapter();
void onProgressSuccess(float progress);
} }

Načítá se…
Zrušit
Uložit