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,19 +230,19 @@ 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
BlockManager.addBlockAsync(
Block( Block(
category = category, category = category,
type = Block.TYPE_USER, type = Block.TYPE_USER,
username = it.name, username = user.name,
uid = it.id.toString() uid = user.id.toString()
).saveAsync() )
.listen { success: Boolean -> ) {
if (success) { if (it) {
Toast.makeText(this, R.string.toast_add_success, Toast.LENGTH_SHORT) toastShort(R.string.toast_add_success)
.show()
} }
} }
} }

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 }