master v2.2.6
fengyuecanzhu 3 years ago
parent c28786f88a
commit 4ea1172716
  1. 2
      app/build.gradle
  2. 5
      app/release.md
  3. 4
      app/src/main/AndroidManifest.xml
  4. 7
      app/src/main/assets/updatelog.fy
  5. 2
      app/src/main/java/xyz/fycz/myreader/greendao/convert/ContentRuleConvert.java
  6. 3
      app/src/main/java/xyz/fycz/myreader/greendao/convert/FindRuleConvert.java
  7. 2
      app/src/main/java/xyz/fycz/myreader/greendao/convert/InfoRuleConvert.java
  8. 2
      app/src/main/java/xyz/fycz/myreader/greendao/convert/SearchRuleConvert.java
  9. 20
      app/src/main/java/xyz/fycz/myreader/greendao/convert/SearchWord1Convert.kt
  10. 2
      app/src/main/java/xyz/fycz/myreader/greendao/convert/TocRuleConvert.java
  11. 11
      app/src/main/java/xyz/fycz/myreader/greendao/entity/rule/BookSource.java
  12. 60
      app/src/main/java/xyz/fycz/myreader/greendao/entity/search/SearchWord.java
  13. 2
      app/src/main/java/xyz/fycz/myreader/greendao/entity/search/SearchWord1.kt
  14. 2
      app/src/main/java/xyz/fycz/myreader/greendao/entity/search/SearchWord2.kt
  15. 4
      app/src/main/java/xyz/fycz/myreader/greendao/service/BookService.java
  16. 4
      app/src/main/java/xyz/fycz/myreader/greendao/util/MySQLiteOpenHelper.java
  17. 12
      app/src/main/java/xyz/fycz/myreader/model/SearchWordEngine.kt
  18. 8
      app/src/main/java/xyz/fycz/myreader/model/storage/Backup.kt
  19. 10
      app/src/main/java/xyz/fycz/myreader/model/storage/Restore.kt
  20. 2
      app/src/main/java/xyz/fycz/myreader/ui/activity/SearchBookActivity.java
  21. 48
      app/src/main/java/xyz/fycz/myreader/ui/activity/SearchWordActivity.kt
  22. 6
      app/src/main/java/xyz/fycz/myreader/ui/adapter/holder/SearchWord1Holder.kt
  23. 2
      app/src/main/java/xyz/fycz/myreader/ui/adapter/holder/SearchWord2Holder.kt
  24. 1
      app/src/main/res/layout/activity_search_word.xml
  25. 1
      app/src/main/res/layout/item_search_word1.xml
  26. 2
      app/version_code.properties

@ -243,7 +243,7 @@ dependencies {
} }
greendao { greendao {
schemaVersion 30 schemaVersion 32
daoPackage 'xyz.fycz.myreader.greendao.gen' daoPackage 'xyz.fycz.myreader.greendao.gen'
// targetGenDir 'src/main/java' // targetGenDir 'src/main/java'
} }

@ -1,2 +1,3 @@
* 1、优化内容搜索结果显示 * 1、优化搜索键盘自动弹出体验
* 2、修复v2.2.4版本json格式书源无法导入的bug * 2、新增书籍内容搜索结果自动保存
* 3、新增书籍内容搜索结果备份与恢复

@ -75,9 +75,7 @@
android:name=".ui.activity.MainActivity" android:name=".ui.activity.MainActivity"
android:alwaysRetainTaskState="true" android:alwaysRetainTaskState="true"
android:launchMode="singleTask" /> android:launchMode="singleTask" />
<activity <activity android:name=".ui.activity.SearchBookActivity" />
android:name=".ui.activity.SearchBookActivity"
android:windowSoftInputMode="stateVisible" />
<activity android:name=".ui.activity.BookDetailedActivity" /> <activity android:name=".ui.activity.BookDetailedActivity" />
<activity <activity

@ -1,3 +1,10 @@
2021.12.07
风月读书v2.2.6
更新内容:
1、优化搜索键盘自动弹出体验
2、新增书籍内容搜索结果自动保存
3、新增书籍内容搜索结果备份与恢复
2021.12.06 2021.12.06
风月读书v2.2.5 风月读书v2.2.5
更新内容: 更新内容:

@ -1,4 +1,4 @@
package xyz.fycz.myreader.greendao.entity.rule.convert; package xyz.fycz.myreader.greendao.convert;
import org.greenrobot.greendao.converter.PropertyConverter; import org.greenrobot.greendao.converter.PropertyConverter;

@ -1,9 +1,8 @@
package xyz.fycz.myreader.greendao.entity.rule.convert; package xyz.fycz.myreader.greendao.convert;
import org.greenrobot.greendao.converter.PropertyConverter; import org.greenrobot.greendao.converter.PropertyConverter;
import xyz.fycz.myreader.greendao.entity.rule.FindRule; import xyz.fycz.myreader.greendao.entity.rule.FindRule;
import xyz.fycz.myreader.greendao.entity.rule.TocRule;
import xyz.fycz.myreader.util.utils.GsonExtensionsKt; import xyz.fycz.myreader.util.utils.GsonExtensionsKt;
/** /**

@ -1,4 +1,4 @@
package xyz.fycz.myreader.greendao.entity.rule.convert; package xyz.fycz.myreader.greendao.convert;
import org.greenrobot.greendao.converter.PropertyConverter; import org.greenrobot.greendao.converter.PropertyConverter;

@ -1,4 +1,4 @@
package xyz.fycz.myreader.greendao.entity.rule.convert; package xyz.fycz.myreader.greendao.convert;
import org.greenrobot.greendao.converter.PropertyConverter; import org.greenrobot.greendao.converter.PropertyConverter;

@ -0,0 +1,20 @@
package xyz.fycz.myreader.greendao.convert
import org.greenrobot.greendao.converter.PropertyConverter
import xyz.fycz.myreader.greendao.entity.search.SearchWord1
import xyz.fycz.myreader.util.utils.GSON
import xyz.fycz.myreader.util.utils.fromJsonArray
/**
* @author fengyue
* @date 2021/12/7 8:14
*/
class SearchWord1Convert: PropertyConverter<List<SearchWord1>, String> {
override fun convertToEntityProperty(databaseValue: String?): List<SearchWord1>? {
return GSON.fromJsonArray(databaseValue)
}
override fun convertToDatabaseValue(entityProperty: List<SearchWord1>?): String {
return GSON.toJson(entityProperty)
}
}

@ -1,4 +1,4 @@
package xyz.fycz.myreader.greendao.entity.rule.convert; package xyz.fycz.myreader.greendao.convert;
import org.greenrobot.greendao.converter.PropertyConverter; import org.greenrobot.greendao.converter.PropertyConverter;

@ -15,16 +15,15 @@ import org.greenrobot.greendao.annotation.NotNull;
import org.greenrobot.greendao.annotation.OrderBy; import org.greenrobot.greendao.annotation.OrderBy;
import org.greenrobot.greendao.annotation.Generated; import org.greenrobot.greendao.annotation.Generated;
import org.greenrobot.greendao.annotation.Transient; import org.greenrobot.greendao.annotation.Transient;
import org.greenrobot.greendao.annotation.Unique;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Objects; import java.util.Objects;
import xyz.fycz.myreader.greendao.entity.rule.convert.ContentRuleConvert; import xyz.fycz.myreader.greendao.convert.ContentRuleConvert;
import xyz.fycz.myreader.greendao.entity.rule.convert.FindRuleConvert; import xyz.fycz.myreader.greendao.convert.FindRuleConvert;
import xyz.fycz.myreader.greendao.entity.rule.convert.InfoRuleConvert; import xyz.fycz.myreader.greendao.convert.InfoRuleConvert;
import xyz.fycz.myreader.greendao.entity.rule.convert.SearchRuleConvert; import xyz.fycz.myreader.greendao.convert.SearchRuleConvert;
import xyz.fycz.myreader.greendao.entity.rule.convert.TocRuleConvert; import xyz.fycz.myreader.greendao.convert.TocRuleConvert;
import static xyz.fycz.myreader.util.utils.StringUtils.stringEquals; import static xyz.fycz.myreader.util.utils.StringUtils.stringEquals;

@ -0,0 +1,60 @@
package xyz.fycz.myreader.greendao.entity.search;
import org.greenrobot.greendao.annotation.Convert;
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import java.util.List;
import xyz.fycz.myreader.greendao.convert.SearchWord1Convert;
import org.greenrobot.greendao.annotation.Generated;
/**
* @author fengyue
* @date 2021/12/7 8:31
*/
@Entity
public class SearchWord {
@Id
private String bookId;
private String keyword;
@Convert(columnType = String.class, converter = SearchWord1Convert.class)
private List<SearchWord1> searchWords;
@Generated(hash = 2054974399)
public SearchWord(String bookId, String keyword,
List<SearchWord1> searchWords) {
this.bookId = bookId;
this.keyword = keyword;
this.searchWords = searchWords;
}
@Generated(hash = 407254878)
public SearchWord() {
}
public String getBookId() {
return this.bookId;
}
public void setBookId(String bookId) {
this.bookId = bookId;
}
public List<SearchWord1> getSearchWords() {
return this.searchWords;
}
public void setSearchWords(List<SearchWord1> searchWords) {
this.searchWords = searchWords;
}
public String getKeyword() {
return this.keyword;
}
public void setKeyword(String keyword) {
this.keyword = keyword;
}
}

@ -1,4 +1,4 @@
package xyz.fycz.myreader.entity package xyz.fycz.myreader.greendao.entity.search
/** /**
* @author fengyue * @author fengyue

@ -1,4 +1,4 @@
package xyz.fycz.myreader.entity package xyz.fycz.myreader.greendao.entity.search
/** /**
* @author fengyue * @author fengyue

@ -189,10 +189,11 @@ public class BookService extends BaseService {
* @param id * @param id
*/ */
public void deleteBookById(String id) { public void deleteBookById(String id) {
BookDao bookDao = DbManager.getInstance().getSession().getBookDao(); BookDao bookDao = DbManager.getDaoSession().getBookDao();
bookDao.deleteByKey(id); bookDao.deleteByKey(id);
mChapterService.deleteBookALLChapterById(id); mChapterService.deleteBookALLChapterById(id);
mBookMarkService.deleteBookALLBookMarkById(id); mBookMarkService.deleteBookALLBookMarkById(id);
DbManager.getDaoSession().getSearchWordDao().deleteByKey(id);
} }
/** /**
@ -205,6 +206,7 @@ public class BookService extends BaseService {
deleteEntity(book); deleteEntity(book);
mChapterService.deleteBookALLChapterById(book.getId()); mChapterService.deleteBookALLChapterById(book.getId());
mBookMarkService.deleteBookALLBookMarkById(book.getId()); mBookMarkService.deleteBookALLBookMarkById(book.getId());
DbManager.getDaoSession().getSearchWordDao().deleteByKey(book.getId());
}catch (Exception ignored){} }catch (Exception ignored){}
} }

@ -38,10 +38,10 @@ public class MySQLiteOpenHelper extends DaoMaster.OpenHelper {
}, },
BookDao.class, ChapterDao.class, SearchHistoryDao.class, BookDao.class, ChapterDao.class, SearchHistoryDao.class,
BookMarkDao.class, BookGroupDao.class, ReplaceRuleBeanDao.class, BookMarkDao.class, BookGroupDao.class, ReplaceRuleBeanDao.class,
BookSourceDao.class, CookieBeanDao.class, ReadRecordDao.class BookSourceDao.class, CookieBeanDao.class, ReadRecordDao.class,
SearchWordDao.class
); );
} }
} }

@ -7,8 +7,8 @@ import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
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.entity.SearchWord1 import xyz.fycz.myreader.greendao.entity.search.SearchWord1
import xyz.fycz.myreader.entity.SearchWord2 import xyz.fycz.myreader.greendao.entity.search.SearchWord2
import xyz.fycz.myreader.greendao.entity.Book import xyz.fycz.myreader.greendao.entity.Book
import xyz.fycz.myreader.greendao.entity.Chapter import xyz.fycz.myreader.greendao.entity.Chapter
import xyz.fycz.myreader.greendao.service.ChapterService import xyz.fycz.myreader.greendao.service.ChapterService
@ -102,8 +102,12 @@ class SearchWordEngine(
val chapterNum = searchSiteIndex val chapterNum = searchSiteIndex
val chapter = chapters[chapterNum] val chapter = chapters[chapterNum]
Observable.create(ObservableOnSubscribe<SearchWord1> { emitter -> Observable.create(ObservableOnSubscribe<SearchWord1> { emitter ->
val searchWord1 = val searchWord1 = SearchWord1(
SearchWord1(book.id, chapterNum, chapter.title, mutableListOf()) bookId = book.id,
chapterNum = chapterNum,
chapterTitle = chapter.title,
searchWord2List = mutableListOf()
)
if (!isLocalBook && !ChapterService.isChapterCached(book.id, chapter.title)) { if (!isLocalBook && !ChapterService.isChapterCached(book.id, chapter.title)) {
emitter.onNext(searchWord1) emitter.onNext(searchWord1)
return@ObservableOnSubscribe return@ObservableOnSubscribe

@ -42,6 +42,7 @@ object Backup {
"replaceRule.json", "replaceRule.json",
"bookSource.json", "bookSource.json",
"readRecord.json", "readRecord.json",
"searchWord.json",
"config.xml" "config.xml"
) )
} }
@ -110,6 +111,13 @@ object Backup {
.writeText(json) .writeText(json)
} }
} }
DbManager.getDaoSession().searchWordDao.queryBuilder().list().let {
if (it.isNotEmpty()) {
val json = GSON.toJson(it)
FileUtils.getFile(backupPath + File.separator + "searchWord.json")
.writeText(json)
}
}
try { try {
val setting = SysManager.getNewSetting() val setting = SysManager.getNewSetting()
val readStyles = setting.readStyles val readStyles = setting.readStyles

@ -15,6 +15,7 @@ import xyz.fycz.myreader.entity.Setting
import xyz.fycz.myreader.greendao.DbManager import xyz.fycz.myreader.greendao.DbManager
import xyz.fycz.myreader.greendao.entity.* import xyz.fycz.myreader.greendao.entity.*
import xyz.fycz.myreader.greendao.entity.rule.BookSource import xyz.fycz.myreader.greendao.entity.rule.BookSource
import xyz.fycz.myreader.greendao.entity.search.SearchWord
import xyz.fycz.myreader.util.SharedPreUtils import xyz.fycz.myreader.util.SharedPreUtils
import xyz.fycz.myreader.util.utils.* import xyz.fycz.myreader.util.utils.*
import java.io.File import java.io.File
@ -129,6 +130,15 @@ object Restore {
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
} }
try {
val file = FileUtils.getFile(path + File.separator + "searchWord.json")
val json = file.readText()
GSON.fromJsonArray<SearchWord>(json)?.let {
DbManager.getInstance().session.searchWordDao.insertOrReplaceInTx(it)
}
} catch (e: Exception) {
e.printStackTrace()
}
try { try {
val settingFile = FileUtils.getFile(path + File.separator + "setting.json") val settingFile = FileUtils.getFile(path + File.separator + "setting.json")
val settingJson = settingFile.readText() val settingJson = settingFile.readText()

@ -120,7 +120,7 @@ public class SearchBookActivity extends BaseActivity {
@Override @Override
public void onWindowFocusChanged(boolean hasFocus) { public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus); super.onWindowFocusChanged(hasFocus);
if (hasFocus){ if (hasFocus && binding.etSearchKey.getText().length() == 0){
App.getHandler().postDelayed(() -> { App.getHandler().postDelayed(() -> {
binding.etSearchKey.requestFocus(); binding.etSearchKey.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);

@ -7,7 +7,6 @@ import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager import android.view.inputmethod.InputMethodManager
import androidx.appcompat.widget.Toolbar import androidx.appcompat.widget.Toolbar
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import org.jetbrains.anko.contentView
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
@ -17,15 +16,14 @@ import xyz.fycz.myreader.base.adapter.IViewHolder
import xyz.fycz.myreader.base.adapter2.onClick import xyz.fycz.myreader.base.adapter2.onClick
import xyz.fycz.myreader.common.APPCONST import xyz.fycz.myreader.common.APPCONST
import xyz.fycz.myreader.databinding.ActivitySearchWordBinding import xyz.fycz.myreader.databinding.ActivitySearchWordBinding
import xyz.fycz.myreader.entity.SearchWord1 import xyz.fycz.myreader.greendao.DbManager
import xyz.fycz.myreader.greendao.entity.search.SearchWord1
import xyz.fycz.myreader.greendao.entity.Book import xyz.fycz.myreader.greendao.entity.Book
import xyz.fycz.myreader.greendao.entity.Chapter import xyz.fycz.myreader.greendao.entity.Chapter
import xyz.fycz.myreader.greendao.entity.search.SearchWord
import xyz.fycz.myreader.model.SearchWordEngine import xyz.fycz.myreader.model.SearchWordEngine
import xyz.fycz.myreader.ui.adapter.holder.SearchWord1Holder import xyz.fycz.myreader.ui.adapter.holder.SearchWord1Holder
import xyz.fycz.myreader.ui.adapter.holder.SearchWord2Holder
import xyz.fycz.myreader.util.ToastUtils
import xyz.fycz.myreader.widget.page.PageLoader import xyz.fycz.myreader.widget.page.PageLoader
import xyz.fycz.myreader.widget.page.PageView
/** /**
* @author fengyue * @author fengyue
@ -39,6 +37,8 @@ class SearchWordActivity : BaseActivity() {
private lateinit var pageLoader: PageLoader private lateinit var pageLoader: PageLoader
private lateinit var searchWordEngine: SearchWordEngine private lateinit var searchWordEngine: SearchWordEngine
private lateinit var adapter: BaseListAdapter<SearchWord1> private lateinit var adapter: BaseListAdapter<SearchWord1>
private var searchWord: SearchWord? = null
private var keyword: String? = null
override fun bindView() { override fun bindView() {
binding = ActivitySearchWordBinding.inflate(layoutInflater) binding = ActivitySearchWordBinding.inflate(layoutInflater)
@ -48,7 +48,21 @@ class SearchWordActivity : BaseActivity() {
override fun setUpToolbar(toolbar: Toolbar?) { override fun setUpToolbar(toolbar: Toolbar?) {
super.setUpToolbar(toolbar) super.setUpToolbar(toolbar)
setStatusBarColor(R.color.colorPrimary, true) setStatusBarColor(R.color.colorPrimary, true)
setUpToolbarTitle()
}
private fun setUpToolbarTitle() {
if (searchWord == null) {
supportActionBar?.title = getString(R.string.search_word) supportActionBar?.title = getString(R.string.search_word)
} else {
var sum = 0
searchWord?.searchWords?.forEach {
sum += it.searchWord2List.size
}
supportActionBar?.title =
getString(R.string.search_word) + "(共" + searchWord?.searchWords?.size +
"个章节," + sum + "条结果)"
}
} }
override fun onSaveInstanceState(outState: Bundle) { override fun onSaveInstanceState(outState: Bundle) {
@ -60,7 +74,7 @@ class SearchWordActivity : BaseActivity() {
override fun onWindowFocusChanged(hasFocus: Boolean) { override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus) super.onWindowFocusChanged(hasFocus)
if (hasFocus) { if (hasFocus && binding.etSearchKey.text?.isEmpty() == true) {
App.getHandler().postDelayed({ App.getHandler().postDelayed({
binding.etSearchKey.requestFocus() binding.etSearchKey.requestFocus()
val imm = val imm =
@ -81,6 +95,7 @@ class SearchWordActivity : BaseActivity() {
pageLoader = pageLoader =
BitIntentDataManager.getInstance().getData(APPCONST.PAGE_LOADER_KEY) as PageLoader BitIntentDataManager.getInstance().getData(APPCONST.PAGE_LOADER_KEY) as PageLoader
searchWordEngine = SearchWordEngine(book, chapters, pageLoader) searchWordEngine = SearchWordEngine(book, chapters, pageLoader)
searchWord = DbManager.getDaoSession().searchWordDao.load(book.id)
} }
override fun initWidget() { override fun initWidget() {
@ -96,12 +111,11 @@ class SearchWordActivity : BaseActivity() {
override fun loadFinish(isEmpty: Boolean) { override fun loadFinish(isEmpty: Boolean) {
binding.fabSearchStop.visibility = View.GONE binding.fabSearchStop.visibility = View.GONE
binding.rpb.isAutoLoading = false binding.rpb.isAutoLoading = false
var sum = 0 if (adapter.itemSize > 0) {
adapter.items.forEach { searchWord = SearchWord(book.id, keyword, adapter.items)
sum += it.searchWord2List.size setUpToolbarTitle()
DbManager.getDaoSession().searchWordDao.insertOrReplace(searchWord)
} }
supportActionBar?.title = getString(R.string.search_word) + "(共" + adapter.itemSize +
"个章节," + sum + "条结果)"
} }
@Synchronized @Synchronized
@ -135,6 +149,11 @@ class SearchWordActivity : BaseActivity() {
} }
binding.rvSearchWord1.layoutManager = LinearLayoutManager(this) binding.rvSearchWord1.layoutManager = LinearLayoutManager(this)
binding.rvSearchWord1.adapter = adapter binding.rvSearchWord1.adapter = adapter
searchWord?.let {
binding.etSearchKey.setText(it.keyword)
keyword = it.keyword
adapter.refreshItems(it.searchWords)
}
} }
override fun initClick() { override fun initClick() {
@ -144,8 +163,8 @@ class SearchWordActivity : BaseActivity() {
private fun search() { private fun search() {
val keyword = binding.etSearchKey.text.toString() val keyword = binding.etSearchKey.text.toString()
if (keyword.isNotEmpty()) { if (keyword.isNotEmpty() && this.keyword != keyword) {
supportActionBar?.title = getString(R.string.search_word) this.keyword = keyword
adapter.clear() adapter.clear()
binding.fabSearchStop.visibility = View.VISIBLE binding.fabSearchStop.visibility = View.VISIBLE
binding.rpb.isAutoLoading = true binding.rpb.isAutoLoading = true
@ -156,6 +175,9 @@ class SearchWordActivity : BaseActivity() {
binding.etSearchKey.windowToken, binding.etSearchKey.windowToken,
InputMethodManager.HIDE_NOT_ALWAYS InputMethodManager.HIDE_NOT_ALWAYS
) )
DbManager.getDaoSession().searchWordDao.deleteByKey(book.id)
searchWord = null
setUpToolbarTitle()
} }
} }

@ -1,9 +1,7 @@
package xyz.fycz.myreader.ui.adapter.holder package xyz.fycz.myreader.ui.adapter.holder
import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.view.View
import android.widget.TextView import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
@ -12,8 +10,8 @@ import xyz.fycz.myreader.R
import xyz.fycz.myreader.base.adapter.BaseListAdapter import xyz.fycz.myreader.base.adapter.BaseListAdapter
import xyz.fycz.myreader.base.adapter.IViewHolder import xyz.fycz.myreader.base.adapter.IViewHolder
import xyz.fycz.myreader.base.adapter.ViewHolderImpl import xyz.fycz.myreader.base.adapter.ViewHolderImpl
import xyz.fycz.myreader.entity.SearchWord1 import xyz.fycz.myreader.greendao.entity.search.SearchWord1
import xyz.fycz.myreader.entity.SearchWord2 import xyz.fycz.myreader.greendao.entity.search.SearchWord2
/** /**
* @author fengyue * @author fengyue

@ -8,7 +8,7 @@ import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import xyz.fycz.myreader.R import xyz.fycz.myreader.R
import xyz.fycz.myreader.base.adapter.ViewHolderImpl import xyz.fycz.myreader.base.adapter.ViewHolderImpl
import xyz.fycz.myreader.entity.SearchWord2 import xyz.fycz.myreader.greendao.entity.search.SearchWord2
/** /**
* @author fengyue * @author fengyue

@ -56,7 +56,6 @@
android:id="@+id/rv_search_word1" android:id="@+id/rv_search_word1"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:paddingHorizontal="10dp"
tools:ignore="SpeakableTextPresentCheck" /> tools:ignore="SpeakableTextPresentCheck" />
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton

@ -2,6 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingHorizontal="10dp"
android:paddingBottom="10dp" android:paddingBottom="10dp"
android:orientation="vertical"> android:orientation="vertical">

@ -1,3 +1,3 @@
#Fri Jun 18 21:45:31 CST 2021 #Fri Jun 18 21:45:31 CST 2021
VERSION_CODE=225 VERSION_CODE=226
NEED_CREATE_RELEASE=true NEED_CREATE_RELEASE=true

Loading…
Cancel
Save