fix: 添加屏蔽用户后需重启生效

This commit is contained in:
HuanCheng65 2023-10-05 18:34:10 +08:00
parent 37e69fdbcc
commit 638bdf7ff1
No known key found for this signature in database
GPG Key ID: 5EC9DD60A32C7360
2 changed files with 23 additions and 13 deletions

View File

@ -12,7 +12,6 @@ import android.view.MenuItem
import android.view.View import android.view.View
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import android.widget.Toast
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import butterknife.BindView import butterknife.BindView
import butterknife.OnClick import butterknife.OnClick
@ -231,21 +230,21 @@ class UserActivity : BaseActivity() {
override fun onOptionsItemSelected(item: MenuItem): Boolean { override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) { when (item.itemId) {
R.id.menu_block_black, R.id.menu_block_white -> { R.id.menu_block_black, R.id.menu_block_white -> {
profileBean?.user?.let { profileBean?.user?.let { user ->
val category = val category =
if (item.itemId == R.id.menu_block_black) Block.CATEGORY_BLACK_LIST else Block.CATEGORY_WHITE_LIST if (item.itemId == R.id.menu_block_black) Block.CATEGORY_BLACK_LIST else Block.CATEGORY_WHITE_LIST
Block( BlockManager.addBlockAsync(
category = category, Block(
type = Block.TYPE_USER, category = category,
username = it.name, type = Block.TYPE_USER,
uid = it.id.toString() username = user.name,
).saveAsync() uid = user.id.toString()
.listen { success: Boolean -> )
if (success) { ) {
Toast.makeText(this, R.string.toast_add_success, Toast.LENGTH_SHORT) if (it) {
.show() toastShort(R.string.toast_add_success)
}
} }
}
} }
return true return true
} }

View File

@ -26,6 +26,17 @@ object BlockManager {
blockList.add(block) blockList.add(block)
} }
fun addBlockAsync(
block: Block,
callback: ((Boolean) -> Unit)? = null,
) {
block.saveAsync()
.listen {
callback?.invoke(it)
blockList.add(block)
}
}
fun removeBlock(id: Long) { fun removeBlock(id: Long) {
LitePal.delete<Block>(id) LitePal.delete<Block>(id)
blockList.removeAll { it.id == id } blockList.removeAll { it.id == id }