diff --git a/app/src/main/java/com/idormy/sms/forwarder/database/dao/MsgDao.kt b/app/src/main/java/com/idormy/sms/forwarder/database/dao/MsgDao.kt index 025581d0..fd655507 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/database/dao/MsgDao.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/database/dao/MsgDao.kt @@ -27,9 +27,6 @@ interface MsgDao { @Query("DELETE FROM Msg where id=:id") fun delete(id: Long) - @Query("DELETE FROM Msg where type=:type") - fun deleteAll(type: String): Completable - @RawQuery fun deleteAll(sql: SupportSQLiteQuery): Int diff --git a/app/src/main/java/com/idormy/sms/forwarder/database/repository/MsgRepository.kt b/app/src/main/java/com/idormy/sms/forwarder/database/repository/MsgRepository.kt index d83011b1..ea98dffd 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/database/repository/MsgRepository.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/database/repository/MsgRepository.kt @@ -14,8 +14,6 @@ class MsgRepository(private val msgDao: MsgDao) { fun deleteAll() = msgDao.deleteAll() - fun deleteAll(type: String) = msgDao.deleteAll(type) - @WorkerThread fun deleteTimeAgo(time: Long) = msgDao.deleteTimeAgo(time) diff --git a/app/src/main/java/com/idormy/sms/forwarder/database/viewmodel/MsgViewModel.kt b/app/src/main/java/com/idormy/sms/forwarder/database/viewmodel/MsgViewModel.kt index f863231e..c536ade8 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/database/viewmodel/MsgViewModel.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/database/viewmodel/MsgViewModel.kt @@ -10,6 +10,7 @@ import androidx.sqlite.db.SimpleSQLiteQuery import com.idormy.sms.forwarder.database.dao.MsgDao import com.idormy.sms.forwarder.database.entity.MsgAndLogs import com.idormy.sms.forwarder.database.ext.ioThread +import com.idormy.sms.forwarder.utils.Log import com.xuexiang.xutil.data.DateUtils import kotlinx.coroutines.flow.Flow @@ -55,18 +56,16 @@ class MsgViewModel(private val dao: MsgDao) : ViewModel() { } fun deleteAll() = ioThread { - if (filter.isEmpty()) { - dao.deleteAll(type) - } else { - val sb = StringBuilder().apply { - append("DELETE FROM Msg WHERE type = '$type'") + val sb = StringBuilder().apply { + append("DELETE FROM Msg WHERE type = '$type'") + if (filter.isNotEmpty()) { append(getOtherCondition()) } - - //Log.d("MsgViewModel", "sql: $sb") - val query = SimpleSQLiteQuery(sb.toString()) - dao.deleteAll(query) } + + Log.d("MsgViewModel", "sql: $sb") + val query = SimpleSQLiteQuery(sb.toString()) + dao.deleteAll(query) } private fun getOtherCondition(): String { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/LogsFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/LogsFragment.kt index 898cf071..c0d96ac9 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/LogsFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/LogsFragment.kt @@ -85,6 +85,7 @@ class LogsFragment : BaseFragment(), MsgPagingAdapter.OnIt .negativeText(R.string.lab_no) .onPositive { _: MaterialDialog?, _: DialogAction? -> try { + Log.d(TAG, "deleteAll, currentType:$currentType, currentFilter:$currentFilter") viewModel.setType(currentType).setFilter(currentFilter).deleteAll() reloadData() XToastUtils.success(if (currentFilter.isEmpty()) R.string.delete_type_log_toast else R.string.delete_filter_log_toast)