pull/5/head
fengyuecanzhu 3 years ago
parent dae4748674
commit 9411c907a0
  1. 4
      app/src/main/java/xyz/fycz/myreader/common/APPCONST.java
  2. 32
      app/src/main/java/xyz/fycz/myreader/ui/activity/BookDetailedActivity.java
  3. 3
      app/src/main/java/xyz/fycz/myreader/ui/activity/BookInfoEditActivity.java
  4. 2
      app/src/main/java/xyz/fycz/myreader/ui/activity/BookstoreActivity.java
  5. 3
      app/src/main/java/xyz/fycz/myreader/ui/activity/CatalogActivity.java
  6. 3
      app/src/main/java/xyz/fycz/myreader/ui/activity/MainActivity.java
  7. 7
      app/src/main/java/xyz/fycz/myreader/ui/activity/ReadActivity.java
  8. 5
      app/src/main/java/xyz/fycz/myreader/ui/adapter/BookcaseDetailedAdapter.java
  9. 5
      app/src/main/java/xyz/fycz/myreader/ui/adapter/BookcaseDragAdapter.java

@ -47,12 +47,8 @@ public class APPCONST {
public static final String THIRD_SOURCE = "ThirdSource"; public static final String THIRD_SOURCE = "ThirdSource";
public static final String DATA_KEY = "data_key"; public static final String DATA_KEY = "data_key";
public static final String BOOK = "book";
public static final String TITLE = "title";
public static final String FIND_CRAWLER = "findCrawler"; public static final String FIND_CRAWLER = "findCrawler";
public static final String CHAPTER_PAGE = "chapter_page"; public static final String CHAPTER_PAGE = "chapter_page";
public static final String SETTING = "setting";
public static final String SEARCH_BOOK_BEAN = "SearchBookBean";
public static final String SOURCE_INDEX = "sourceIndex"; public static final String SOURCE_INDEX = "sourceIndex";
public static final String FONT = "font"; public static final String FONT = "font";
public static final String BOOK_SOURCE = "bookSource"; public static final String BOOK_SOURCE = "bookSource";

@ -156,16 +156,10 @@ public class BookDetailedActivity extends BaseActivity {
super.initData(savedInstanceState); super.initData(savedInstanceState);
mBookService = BookService.getInstance(); mBookService = BookService.getInstance();
mChapterService = ChapterService.getInstance(); mChapterService = ChapterService.getInstance();
aBooks = (ArrayList<Book>) BitIntentDataManager.getInstance().getData(getIntent()); if (!initBook()){
sourceIndex = getIntent().getIntExtra(APPCONST.SOURCE_INDEX, 0);
if (aBooks != null) {
mBook = aBooks.get(sourceIndex);
} else {
mBook = (Book) getIntent().getSerializableExtra(APPCONST.BOOK);
}
if (mBook == null) {
ToastUtils.showError("无法获取书籍!"); ToastUtils.showError("无法获取书籍!");
finish(); finish();
return;
} }
isCollected = isBookCollected(); isCollected = isBookCollected();
if (isCollected) { if (isCollected) {
@ -183,6 +177,21 @@ public class BookDetailedActivity extends BaseActivity {
mReadCrawler = ReadCrawlerUtil.getReadCrawler(mBook.getSource()); mReadCrawler = ReadCrawlerUtil.getReadCrawler(mBook.getSource());
} }
private boolean initBook() {
Object obj = BitIntentDataManager.getInstance().getData(getIntent());
sourceIndex = getIntent().getIntExtra(APPCONST.SOURCE_INDEX, 0);
if (obj == null) {
return false;
}
if (obj instanceof Book) {
mBook = (Book) obj;
} else if (obj instanceof List) {
aBooks = (ArrayList<Book>) obj;
mBook = aBooks.get(sourceIndex);
}
return mBook != null;
}
private void initTagList() { private void initTagList() {
tagList.clear(); tagList.clear();
String type = mBook.getType(); String type = mBook.getType();
@ -376,8 +385,7 @@ public class BookDetailedActivity extends BaseActivity {
*/ */
public void goToMoreChapter() { public void goToMoreChapter() {
Intent intent = new Intent(this, CatalogActivity.class); Intent intent = new Intent(this, CatalogActivity.class);
intent.putExtra(APPCONST.BOOK, mBook); BitIntentDataManager.getInstance().putData(intent, mBook);
//BitIntentDataManager.getInstance().putData(intent, mBook);
startActivityForResult(intent, APPCONST.REQUEST_CHAPTER_PAGE); startActivityForResult(intent, APPCONST.REQUEST_CHAPTER_PAGE);
} }
@ -560,7 +568,7 @@ public class BookDetailedActivity extends BaseActivity {
mBookService.addBook(mBook); mBookService.addBook(mBook);
} }
Intent intent = new Intent(this, ReadActivity.class); Intent intent = new Intent(this, ReadActivity.class);
intent.putExtra(APPCONST.BOOK, mBook); BitIntentDataManager.getInstance().putData(intent, mBook);
intent.putExtra("isCollected", isCollected); intent.putExtra("isCollected", isCollected);
startActivityForResult(intent, APPCONST.REQUEST_READ); startActivityForResult(intent, APPCONST.REQUEST_READ);
} }
@ -628,7 +636,7 @@ public class BookDetailedActivity extends BaseActivity {
break; break;
case R.id.action_edit: case R.id.action_edit:
Intent editIntent = new Intent(this, BookInfoEditActivity.class); Intent editIntent = new Intent(this, BookInfoEditActivity.class);
editIntent.putExtra(APPCONST.BOOK, mBook); BitIntentDataManager.getInstance().putData(editIntent, mBook);
startActivityForResult(editIntent, APPCONST.REQUEST_EDIT_BOOK); startActivityForResult(editIntent, APPCONST.REQUEST_EDIT_BOOK);
break; break;
case R.id.action_reload: //重新加载 case R.id.action_reload: //重新加载

@ -11,6 +11,7 @@ import androidx.appcompat.widget.Toolbar;
import xyz.fycz.myreader.R; import xyz.fycz.myreader.R;
import xyz.fycz.myreader.application.App; import xyz.fycz.myreader.application.App;
import xyz.fycz.myreader.base.BaseActivity; import xyz.fycz.myreader.base.BaseActivity;
import xyz.fycz.myreader.base.BitIntentDataManager;
import xyz.fycz.myreader.common.APPCONST; import xyz.fycz.myreader.common.APPCONST;
import xyz.fycz.myreader.databinding.ActivityBookInfoEditBinding; import xyz.fycz.myreader.databinding.ActivityBookInfoEditBinding;
import xyz.fycz.myreader.greendao.entity.Book; import xyz.fycz.myreader.greendao.entity.Book;
@ -54,7 +55,7 @@ public class BookInfoEditActivity extends BaseActivity {
@Override @Override
protected void initData(Bundle savedInstanceState) { protected void initData(Bundle savedInstanceState) {
super.initData(savedInstanceState); super.initData(savedInstanceState);
mBook = (Book) getIntent().getSerializableExtra(APPCONST.BOOK); mBook = (Book) BitIntentDataManager.getInstance().getData(getIntent());
if (mBook == null) { if (mBook == null) {
ToastUtils.showError("未读取到书籍信息"); ToastUtils.showError("未读取到书籍信息");
finish(); finish();

@ -362,7 +362,7 @@ public class BookstoreActivity extends BaseActivity {
*/ */
private void goToBookDetail(Book book) { private void goToBookDetail(Book book) {
Intent intent = new Intent(this, BookDetailedActivity.class); Intent intent = new Intent(this, BookDetailedActivity.class);
intent.putExtra(APPCONST.BOOK, book); BitIntentDataManager.getInstance().putData(intent, book);
BookstoreActivity.this.startActivity(intent); BookstoreActivity.this.startActivity(intent);
} }

@ -10,6 +10,7 @@ import androidx.appcompat.widget.Toolbar;
import xyz.fycz.myreader.R; import xyz.fycz.myreader.R;
import xyz.fycz.myreader.base.BaseActivity; import xyz.fycz.myreader.base.BaseActivity;
import xyz.fycz.myreader.base.BitIntentDataManager;
import xyz.fycz.myreader.common.APPCONST; import xyz.fycz.myreader.common.APPCONST;
import xyz.fycz.myreader.databinding.ActivityCatalogBinding; import xyz.fycz.myreader.databinding.ActivityCatalogBinding;
import xyz.fycz.myreader.greendao.entity.Book; import xyz.fycz.myreader.greendao.entity.Book;
@ -48,7 +49,7 @@ public class CatalogActivity extends BaseActivity {
@Override @Override
protected void initData(Bundle savedInstanceState) { protected void initData(Bundle savedInstanceState) {
super.initData(savedInstanceState); super.initData(savedInstanceState);
mBook = (Book) getIntent().getSerializableExtra(APPCONST.BOOK); mBook = (Book) BitIntentDataManager.getInstance().getData(getIntent());
} }

@ -31,6 +31,7 @@ import xyz.fycz.myreader.R;
import xyz.fycz.myreader.application.App; import xyz.fycz.myreader.application.App;
import xyz.fycz.myreader.application.SysManager; import xyz.fycz.myreader.application.SysManager;
import xyz.fycz.myreader.base.BaseActivity; import xyz.fycz.myreader.base.BaseActivity;
import xyz.fycz.myreader.base.BitIntentDataManager;
import xyz.fycz.myreader.common.APPCONST; import xyz.fycz.myreader.common.APPCONST;
import xyz.fycz.myreader.databinding.ActivityMainBinding; import xyz.fycz.myreader.databinding.ActivityMainBinding;
import xyz.fycz.myreader.entity.SharedBook; import xyz.fycz.myreader.entity.SharedBook;
@ -363,7 +364,7 @@ public class MainActivity extends BaseActivity {
if (sharedBook != null && !StringHelper.isEmpty(sharedBook.getChapterUrl())) { if (sharedBook != null && !StringHelper.isEmpty(sharedBook.getChapterUrl())) {
Book book = SharedBook.sharedBookToBook(sharedBook); Book book = SharedBook.sharedBookToBook(sharedBook);
Intent intent = new Intent(this, BookDetailedActivity.class); Intent intent = new Intent(this, BookDetailedActivity.class);
intent.putExtra(APPCONST.BOOK, book); BitIntentDataManager.getInstance().putData(intent, book);
startActivity(intent); startActivity(intent);
} else { } else {
ToastUtils.showError("书籍加载失败"); ToastUtils.showError("书籍加载失败");

@ -54,6 +54,7 @@ import xyz.fycz.myreader.R;
import xyz.fycz.myreader.application.App; import xyz.fycz.myreader.application.App;
import xyz.fycz.myreader.application.SysManager; import xyz.fycz.myreader.application.SysManager;
import xyz.fycz.myreader.base.BaseActivity; import xyz.fycz.myreader.base.BaseActivity;
import xyz.fycz.myreader.base.BitIntentDataManager;
import xyz.fycz.myreader.base.observer.MyObserver; import xyz.fycz.myreader.base.observer.MyObserver;
import xyz.fycz.myreader.common.APPCONST; import xyz.fycz.myreader.common.APPCONST;
import xyz.fycz.myreader.common.URLCONST; import xyz.fycz.myreader.common.URLCONST;
@ -480,8 +481,8 @@ public class ReadActivity extends BaseActivity implements ColorPickerDialogListe
mBook = bookTem; mBook = bookTem;
toggleMenu(true); toggleMenu(true);
Intent intent = new Intent(this, ReadActivity.class) Intent intent = new Intent(this, ReadActivity.class)
.putExtra(APPCONST.BOOK, mBook)
.putExtra("hasChangeSource", true); .putExtra("hasChangeSource", true);
BitIntentDataManager.getInstance().putData(intent, mBook);
if (!isCollected) { if (!isCollected) {
intent.putExtra("isCollected", false); intent.putExtra("isCollected", false);
} }
@ -536,7 +537,7 @@ public class ReadActivity extends BaseActivity implements ColorPickerDialogListe
//跳转 //跳转
mHandler.postDelayed(() -> { mHandler.postDelayed(() -> {
Intent intent = new Intent(this, CatalogActivity.class); Intent intent = new Intent(this, CatalogActivity.class);
intent.putExtra(APPCONST.BOOK, mBook); BitIntentDataManager.getInstance().putData(intent, mBook);
this.startActivityForResult(intent, APPCONST.REQUEST_CHAPTER_PAGE); this.startActivityForResult(intent, APPCONST.REQUEST_CHAPTER_PAGE);
}, mBottomOutAnim.getDuration()); }, mBottomOutAnim.getDuration());
}); });
@ -909,7 +910,7 @@ public class ReadActivity extends BaseActivity implements ColorPickerDialogListe
addLocalBook(path); addLocalBook(path);
} else { } else {
//路径为空,说明不是直接打开txt文件 //路径为空,说明不是直接打开txt文件
mBook = (Book) getIntent().getSerializableExtra(APPCONST.BOOK); mBook = (Book) BitIntentDataManager.getInstance().getData(getIntent());
//mBook为空,说明是从快捷方式启动 //mBook为空,说明是从快捷方式启动
if (mBook == null) { if (mBook == null) {
String bookId = SharedPreUtils.getInstance().getString(getString(R.string.lastRead), ""); String bookId = SharedPreUtils.getInstance().getString(getString(R.string.lastRead), "");

@ -15,6 +15,7 @@ import java.util.ArrayList;
import xyz.fycz.myreader.R; import xyz.fycz.myreader.R;
import xyz.fycz.myreader.application.App; import xyz.fycz.myreader.application.App;
import xyz.fycz.myreader.base.BitIntentDataManager;
import xyz.fycz.myreader.common.APPCONST; import xyz.fycz.myreader.common.APPCONST;
import xyz.fycz.myreader.ui.activity.ReadActivity; import xyz.fycz.myreader.ui.activity.ReadActivity;
import xyz.fycz.myreader.ui.dialog.DialogCreator; import xyz.fycz.myreader.ui.dialog.DialogCreator;
@ -128,13 +129,13 @@ public class BookcaseDetailedAdapter extends BookcaseAdapter {
} }
viewHolder.llBookRead.setOnClickListener(v -> { viewHolder.llBookRead.setOnClickListener(v -> {
Intent intent = new Intent(mContext, ReadActivity.class); Intent intent = new Intent(mContext, ReadActivity.class);
intent.putExtra(APPCONST.BOOK, book); BitIntentDataManager.getInstance().putData(intent, book);
mBookService.updateEntity(book); mBookService.updateEntity(book);
mContext.startActivity(intent); mContext.startActivity(intent);
}); });
viewHolder.ivBookImg.setOnClickListener(v -> { viewHolder.ivBookImg.setOnClickListener(v -> {
Intent intent = new Intent(mContext, BookDetailedActivity.class); Intent intent = new Intent(mContext, BookDetailedActivity.class);
intent.putExtra(APPCONST.BOOK, book); BitIntentDataManager.getInstance().putData(intent, book);
mContext.startActivity(intent); mContext.startActivity(intent);
}); });
viewHolder.llBookRead.setOnLongClickListener(v -> { viewHolder.llBookRead.setOnLongClickListener(v -> {

@ -13,6 +13,7 @@ import java.util.ArrayList;
import xyz.fycz.myreader.R; import xyz.fycz.myreader.R;
import xyz.fycz.myreader.application.App; import xyz.fycz.myreader.application.App;
import xyz.fycz.myreader.base.BitIntentDataManager;
import xyz.fycz.myreader.common.APPCONST; import xyz.fycz.myreader.common.APPCONST;
import xyz.fycz.myreader.ui.activity.ReadActivity; import xyz.fycz.myreader.ui.activity.ReadActivity;
import xyz.fycz.myreader.ui.dialog.DialogCreator; import xyz.fycz.myreader.ui.dialog.DialogCreator;
@ -110,7 +111,7 @@ public class BookcaseDragAdapter extends BookcaseAdapter {
} }
viewHolder.ivBookImg.setOnClickListener(v -> { viewHolder.ivBookImg.setOnClickListener(v -> {
Intent intent = new Intent(mContext, ReadActivity.class); Intent intent = new Intent(mContext, ReadActivity.class);
intent.putExtra(APPCONST.BOOK, book); BitIntentDataManager.getInstance().putData(intent, book);
mBookService.updateEntity(book); mBookService.updateEntity(book);
mContext.startActivity(intent); mContext.startActivity(intent);
}); });
@ -122,7 +123,7 @@ public class BookcaseDragAdapter extends BookcaseAdapter {
switch (which) { switch (which) {
case 0: case 0:
Intent intent = new Intent(mContext, BookDetailedActivity.class); Intent intent = new Intent(mContext, BookDetailedActivity.class);
intent.putExtra(APPCONST.BOOK, book); BitIntentDataManager.getInstance().putData(intent, book);
mContext.startActivity(intent); mContext.startActivity(intent);
break; break;
case 1: case 1:

Loading…
Cancel
Save