mirror of
https://github.com/element-hq/element-android
synced 2024-11-28 05:31:21 +03:00
Unmocking check of permission to notify room
This commit is contained in:
parent
49596dcea3
commit
10d196596c
3 changed files with 20 additions and 6 deletions
|
@ -50,6 +50,9 @@ interface PushRuleService {
|
|||
|
||||
// fun fulfilledBingRule(event: Event, rules: List<PushRule>): PushRule?
|
||||
|
||||
fun resolveSenderNotificationPermissionCondition(event: Event,
|
||||
condition: SenderNotificationPermissionCondition): Boolean
|
||||
|
||||
interface PushRuleListener {
|
||||
fun onEvents(pushEvents: PushEvents)
|
||||
}
|
||||
|
|
|
@ -19,11 +19,13 @@ import androidx.lifecycle.LiveData
|
|||
import androidx.lifecycle.Transformations
|
||||
import com.zhuinden.monarchy.Monarchy
|
||||
import org.matrix.android.sdk.api.pushrules.Action
|
||||
import org.matrix.android.sdk.api.pushrules.ConditionResolver
|
||||
import org.matrix.android.sdk.api.pushrules.PushEvents
|
||||
import org.matrix.android.sdk.api.pushrules.PushRuleService
|
||||
import org.matrix.android.sdk.api.pushrules.RuleKind
|
||||
import org.matrix.android.sdk.api.pushrules.RuleScope
|
||||
import org.matrix.android.sdk.api.pushrules.RuleSetKey
|
||||
import org.matrix.android.sdk.api.pushrules.SenderNotificationPermissionCondition
|
||||
import org.matrix.android.sdk.api.pushrules.getActions
|
||||
import org.matrix.android.sdk.api.pushrules.rest.PushRule
|
||||
import org.matrix.android.sdk.api.pushrules.rest.RuleSet
|
||||
|
@ -53,6 +55,7 @@ internal class DefaultPushRuleService @Inject constructor(
|
|||
private val removePushRuleTask: RemovePushRuleTask,
|
||||
private val pushRuleFinder: PushRuleFinder,
|
||||
private val taskExecutor: TaskExecutor,
|
||||
private val conditionResolver: ConditionResolver,
|
||||
@SessionDatabase private val monarchy: Monarchy
|
||||
) : PushRuleService {
|
||||
|
||||
|
@ -143,6 +146,10 @@ internal class DefaultPushRuleService @Inject constructor(
|
|||
return pushRuleFinder.fulfilledBingRule(event, rules)?.getActions().orEmpty()
|
||||
}
|
||||
|
||||
override fun resolveSenderNotificationPermissionCondition(event: Event, condition: SenderNotificationPermissionCondition): Boolean {
|
||||
return conditionResolver.resolveSenderNotificationPermissionCondition(event, condition)
|
||||
}
|
||||
|
||||
override fun getKeywords(): LiveData<Set<String>> {
|
||||
// Keywords are all content rules that don't start with '.'
|
||||
val liveData = monarchy.findAllMappedWithChanges(
|
||||
|
|
|
@ -24,17 +24,20 @@ import dagger.assisted.AssistedInject
|
|||
import im.vector.app.R
|
||||
import im.vector.app.features.autocomplete.AutocompleteClickListener
|
||||
import im.vector.app.features.autocomplete.RecyclerViewPresenter
|
||||
import org.matrix.android.sdk.api.pushrules.SenderNotificationPermissionCondition
|
||||
import org.matrix.android.sdk.api.query.QueryStringValue
|
||||
import org.matrix.android.sdk.api.session.Session
|
||||
import org.matrix.android.sdk.api.session.events.model.Event
|
||||
import org.matrix.android.sdk.api.session.room.members.RoomMemberQueryParams
|
||||
import org.matrix.android.sdk.api.session.room.members.roomMemberQueryParams
|
||||
import org.matrix.android.sdk.api.session.room.model.Membership
|
||||
import org.matrix.android.sdk.api.session.room.model.PowerLevelsContent
|
||||
import org.matrix.android.sdk.api.session.room.model.RoomMemberSummary
|
||||
import org.matrix.android.sdk.api.util.MatrixItem
|
||||
|
||||
class AutocompleteMemberPresenter @AssistedInject constructor(context: Context,
|
||||
@Assisted val roomId: String,
|
||||
session: Session,
|
||||
private val session: Session,
|
||||
private val controller: AutocompleteMemberController
|
||||
) : RecyclerViewPresenter<AutocompleteMemberItem>(context), AutocompleteClickListener<AutocompleteMemberItem> {
|
||||
|
||||
|
@ -140,12 +143,13 @@ class AutocompleteMemberPresenter @AssistedInject constructor(context: Context,
|
|||
AutocompleteMemberItem.Everyone(it)
|
||||
}
|
||||
|
||||
private fun canNotifyEveryone() = true
|
||||
// TODO use session object to check ?
|
||||
/*conditionResolver.resolveSenderNotificationPermissionCondition(
|
||||
Event(roomId = roomId),
|
||||
private fun canNotifyEveryone() = session.resolveSenderNotificationPermissionCondition(
|
||||
Event(
|
||||
senderId = session.myUserId,
|
||||
roomId = roomId
|
||||
),
|
||||
SenderNotificationPermissionCondition(PowerLevelsContent.NOTIFICATIONS_ROOM_KEY)
|
||||
)*/
|
||||
)
|
||||
|
||||
/* ==========================================================================================
|
||||
* Const
|
||||
|
|
Loading…
Reference in a new issue