Merge pull request #1900 from vector-im/feature/improve_ignore_user

Ensure users do not accidentally ignore other users (#1890)
This commit is contained in:
Benoit Marty 2020-08-13 17:13:14 +02:00 committed by GitHub
commit 87c903a0fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 9 deletions

View File

@ -6,6 +6,7 @@ Features ✨:
Improvements 🙌:
- Give user the possibility to prevent accidental call (#1869)
- Ensure users do not accidentally ignore other users (#1890)
Bugfix 🐛:
- Fix invisible toolbar (Status.im theme) (#1746)

View File

@ -18,14 +18,14 @@
package org.matrix.android.sdk.internal.session.user.accountdata
import com.zhuinden.monarchy.Monarchy
import org.greenrobot.eventbus.EventBus
import org.matrix.android.sdk.api.session.accountdata.UserAccountDataTypes
import org.matrix.android.sdk.internal.database.model.IgnoredUserEntity
import org.matrix.android.sdk.internal.di.SessionDatabase
import org.matrix.android.sdk.internal.di.UserId
import org.matrix.android.sdk.internal.network.executeRequest
import org.matrix.android.sdk.internal.session.sync.model.accountdata.IgnoredUsersContent
import org.matrix.android.sdk.api.session.accountdata.UserAccountDataTypes
import org.matrix.android.sdk.internal.task.Task
import org.greenrobot.eventbus.EventBus
import javax.inject.Inject
internal interface UpdateIgnoredUserIdsTask : Task<UpdateIgnoredUserIdsTask.Params, Unit> {
@ -51,7 +51,7 @@ internal class DefaultUpdateIgnoredUserIdsTask @Inject constructor(
{ it.userId }
).toMutableSet()
val original = ignoredUserIds.toList()
val original = ignoredUserIds.toSet()
ignoredUserIds.removeAll { it in params.userIdsToUnIgnore }
ignoredUserIds.addAll(params.userIdsToIgnore)

View File

@ -1491,7 +1491,7 @@ class RoomDetailFragment @Inject constructor(
promptReasonToReportContent(action)
}
is EventSharedAction.IgnoreUser -> {
roomDetailViewModel.handle(RoomDetailAction.IgnoreUser(action.senderId))
action.senderId?.let { askConfirmationToIgnoreUser(it) }
}
is EventSharedAction.OnUrlClicked -> {
onUrlClicked(action.url, action.title)
@ -1507,12 +1507,21 @@ class RoomDetailFragment @Inject constructor(
startActivity(KeysBackupRestoreActivity.intent(it))
}
}
else -> {
Toast.makeText(context, "Action $action is not implemented yet", Toast.LENGTH_LONG).show()
}
}
}
private fun askConfirmationToIgnoreUser(senderId: String) {
AlertDialog.Builder(requireContext())
.setTitle(R.string.room_participants_action_ignore_title)
.setMessage(R.string.room_participants_action_ignore_prompt_msg)
.setNegativeButton(R.string.cancel, null)
.setPositiveButton(R.string.room_participants_action_ignore) { _, _ ->
roomDetailViewModel.handle(RoomDetailAction.IgnoreUser(senderId))
}
.show()
.withColoredButton(DialogInterface.BUTTON_POSITIVE)
}
/**
* Insert a user displayName in the message editor.
*

View File

@ -1801,7 +1801,7 @@
<string name="report_content_custom_title">"Report this content"</string>
<string name="report_content_custom_hint">"Reason for reporting this content"</string>
<string name="report_content_custom_submit">"REPORT"</string>
<string name="block_user">"BLOCK USER"</string>
<string name="block_user">"IGNORE USER"</string>
<string name="content_reported_title">"Content reported"</string>
<string name="content_reported_content">"This content was reported.\n\nIf you don't want to see any more content from this user, you can block him to hide his messages"</string>
@ -1814,7 +1814,7 @@
<string name="no_network_indicator">There is no network connection right now</string>
<string name="message_ignore_user">Block user</string>
<string name="message_ignore_user">Ignore user</string>
<string name="room_list_quick_actions_notifications_all_noisy">"All messages (noisy)"</string>
<string name="room_list_quick_actions_notifications_all">"All messages"</string>