rss源变化时相关数据处理 (#4409)
* rss收藏优化 * rss源删除时,删除该源的rssArticle数据; * rss源编辑时,如果源地址发生变化,同时更新源相关数据; * 共存版命名添加后缀
This commit is contained in:
@@ -32,6 +32,9 @@ interface RssArticleDao {
|
||||
@Update
|
||||
fun update(vararg rssArticle: RssArticle)
|
||||
|
||||
@Query("update rssArticles set origin = :origin where origin = :oldOrigin")
|
||||
fun updateOrigin(origin: String, oldOrigin: String)
|
||||
|
||||
@Query("delete from rssArticles where origin = :origin")
|
||||
fun delete(origin: String)
|
||||
|
||||
|
||||
@@ -28,6 +28,9 @@ interface RssStarDao {
|
||||
@Update
|
||||
fun update(vararg rssStar: RssStar)
|
||||
|
||||
@Query("update rssStars set origin = :origin where origin = :oldOrigin")
|
||||
fun updateOrigin(origin: String, oldOrigin: String)
|
||||
|
||||
@Query("delete from rssStars where origin = :origin")
|
||||
fun delete(origin: String)
|
||||
|
||||
|
||||
@@ -31,7 +31,12 @@ class RssViewModel(application: Application) : BaseViewModel(application) {
|
||||
}
|
||||
|
||||
fun del(vararg rssSource: RssSource) {
|
||||
execute { appDb.rssSourceDao.delete(*rssSource) }
|
||||
execute {
|
||||
appDb.rssSourceDao.delete(*rssSource)
|
||||
rssSource.forEach {
|
||||
appDb.rssArticleDao.delete(it.sourceUrl)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun disable(rssSource: RssSource) {
|
||||
|
||||
@@ -34,8 +34,8 @@ class RssFavoritesDialog() : BaseDialogFragment(R.layout.dialog_rss_favorite_con
|
||||
return
|
||||
}
|
||||
|
||||
var title = arguments.getString("title") ?: "默认名称"
|
||||
var group = arguments.getString("group") ?: "默认分组"
|
||||
var title = arguments.getString("title")
|
||||
var group = arguments.getString("group")
|
||||
binding.run {
|
||||
editTitle.setText(title)
|
||||
editGroup.setText(group)
|
||||
@@ -65,7 +65,7 @@ class RssFavoritesDialog() : BaseDialogFragment(R.layout.dialog_rss_favorite_con
|
||||
|
||||
interface Callback {
|
||||
|
||||
fun updateFavorite(title: String, group: String)
|
||||
fun updateFavorite(title: String?, group: String?)
|
||||
|
||||
fun deleteFavorite()
|
||||
|
||||
|
||||
@@ -183,9 +183,15 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
|
||||
return super.onCompatOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
override fun updateFavorite(title: String, group: String) {
|
||||
viewModel.rssArticle?.title = title
|
||||
viewModel.rssArticle?.group = group
|
||||
override fun updateFavorite(title: String?, group: String?) {
|
||||
viewModel.rssArticle?.let{
|
||||
if (title != null) {
|
||||
it.title = title
|
||||
}
|
||||
if (group != null) {
|
||||
it.group = group
|
||||
}
|
||||
}
|
||||
viewModel.updateFavorite()
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,11 @@ class RssSourceEditViewModel(application: Application) : BaseViewModel(applicati
|
||||
}
|
||||
rssSource?.let {
|
||||
appDb.rssSourceDao.delete(it)
|
||||
//更新收藏的源地址
|
||||
if (it.sourceUrl != source.sourceUrl){
|
||||
appDb.rssStarDao.updateOrigin(source.sourceUrl, it.sourceUrl)
|
||||
appDb.rssArticleDao.updateOrigin(source.sourceUrl, it.sourceUrl)
|
||||
}
|
||||
}
|
||||
appDb.rssSourceDao.insert(source)
|
||||
rssSource = source
|
||||
|
||||
@@ -38,7 +38,12 @@ class RssSourceViewModel(application: Application) : BaseViewModel(application)
|
||||
}
|
||||
|
||||
fun del(vararg rssSource: RssSource) {
|
||||
execute { appDb.rssSourceDao.delete(*rssSource) }
|
||||
execute {
|
||||
appDb.rssSourceDao.delete(*rssSource)
|
||||
rssSource.forEach {
|
||||
appDb.rssArticleDao.delete(it.sourceUrl)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun update(vararg rssSource: RssSource) {
|
||||
|
||||
Reference in New Issue
Block a user