diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/pushrules/RuleIds.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/pushrules/RuleIds.kt index 484344e6ea..34581b613a 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/pushrules/RuleIds.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/pushrules/RuleIds.kt @@ -62,35 +62,3 @@ object RuleIds { const val RULE_ID_REACTION = ".m.rule.reaction" } - -fun RuleIds.getSyncedRules(ruleId: String): List { - return when (ruleId) { - RULE_ID_ONE_TO_ONE_ROOM -> listOf( - RULE_ID_POLL_START_ONE_TO_ONE, - RULE_ID_POLL_START_ONE_TO_ONE_UNSTABLE, - RULE_ID_POLL_END_ONE_TO_ONE, - RULE_ID_POLL_END_ONE_TO_ONE_UNSTABLE, - ) - RULE_ID_ALL_OTHER_MESSAGES_ROOMS -> listOf( - RULE_ID_POLL_START, - RULE_ID_POLL_START_UNSTABLE, - RULE_ID_POLL_END, - RULE_ID_POLL_END_UNSTABLE, - ) - else -> emptyList() - } -} - -fun RuleIds.getParentRule(ruleId: String): String? { - return when (ruleId) { - RULE_ID_POLL_START_ONE_TO_ONE, - RULE_ID_POLL_START_ONE_TO_ONE_UNSTABLE, - RULE_ID_POLL_END_ONE_TO_ONE, - RULE_ID_POLL_END_ONE_TO_ONE_UNSTABLE -> RULE_ID_ONE_TO_ONE_ROOM - RULE_ID_POLL_START, - RULE_ID_POLL_START_UNSTABLE, - RULE_ID_POLL_END, - RULE_ID_POLL_END_UNSTABLE -> RULE_ID_ALL_OTHER_MESSAGES_ROOMS - else -> null - } -} diff --git a/vector/src/main/java/im/vector/app/features/settings/notifications/RuleIdsExt.kt b/vector/src/main/java/im/vector/app/features/settings/notifications/RuleIdsExt.kt new file mode 100644 index 0000000000..1e14ef9157 --- /dev/null +++ b/vector/src/main/java/im/vector/app/features/settings/notifications/RuleIdsExt.kt @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package im.vector.app.features.settings.notifications + +import org.matrix.android.sdk.api.session.pushrules.RuleIds + +fun RuleIds.getSyncedRules(ruleId: String): List { + return when (ruleId) { + RULE_ID_ONE_TO_ONE_ROOM -> listOf( + RULE_ID_POLL_START_ONE_TO_ONE, + RULE_ID_POLL_START_ONE_TO_ONE_UNSTABLE, + RULE_ID_POLL_END_ONE_TO_ONE, + RULE_ID_POLL_END_ONE_TO_ONE_UNSTABLE, + ) + RULE_ID_ALL_OTHER_MESSAGES_ROOMS -> listOf( + RULE_ID_POLL_START, + RULE_ID_POLL_START_UNSTABLE, + RULE_ID_POLL_END, + RULE_ID_POLL_END_UNSTABLE, + ) + else -> emptyList() + } +} + +fun RuleIds.getParentRule(ruleId: String): String? { + return when (ruleId) { + RULE_ID_POLL_START_ONE_TO_ONE, + RULE_ID_POLL_START_ONE_TO_ONE_UNSTABLE, + RULE_ID_POLL_END_ONE_TO_ONE, + RULE_ID_POLL_END_ONE_TO_ONE_UNSTABLE -> RULE_ID_ONE_TO_ONE_ROOM + RULE_ID_POLL_START, + RULE_ID_POLL_START_UNSTABLE, + RULE_ID_POLL_END, + RULE_ID_POLL_END_UNSTABLE -> RULE_ID_ALL_OTHER_MESSAGES_ROOMS + else -> null + } +} diff --git a/vector/src/main/java/im/vector/app/features/settings/notifications/VectorSettingsPushRuleNotificationViewModel.kt b/vector/src/main/java/im/vector/app/features/settings/notifications/VectorSettingsPushRuleNotificationViewModel.kt index daf9c044d1..39969ec13e 100644 --- a/vector/src/main/java/im/vector/app/features/settings/notifications/VectorSettingsPushRuleNotificationViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/settings/notifications/VectorSettingsPushRuleNotificationViewModel.kt @@ -32,7 +32,6 @@ import org.matrix.android.sdk.api.failure.MatrixError import org.matrix.android.sdk.api.session.pushrules.Action import org.matrix.android.sdk.api.session.pushrules.RuleIds import org.matrix.android.sdk.api.session.pushrules.RuleKind -import org.matrix.android.sdk.api.session.pushrules.getSyncedRules import org.matrix.android.sdk.api.session.pushrules.rest.PushRuleAndKind private typealias ViewModel = VectorSettingsPushRuleNotificationViewModel diff --git a/vector/src/main/java/im/vector/app/features/settings/notifications/usecase/UpdatePushRulesIfNeededUseCase.kt b/vector/src/main/java/im/vector/app/features/settings/notifications/usecase/UpdatePushRulesIfNeededUseCase.kt index 9397c9e74c..6998065f01 100644 --- a/vector/src/main/java/im/vector/app/features/settings/notifications/usecase/UpdatePushRulesIfNeededUseCase.kt +++ b/vector/src/main/java/im/vector/app/features/settings/notifications/usecase/UpdatePushRulesIfNeededUseCase.kt @@ -16,10 +16,10 @@ package im.vector.app.features.settings.notifications.usecase +import im.vector.app.features.settings.notifications.getParentRule import org.matrix.android.sdk.api.session.Session import org.matrix.android.sdk.api.session.pushrules.RuleIds import org.matrix.android.sdk.api.session.pushrules.getActions -import org.matrix.android.sdk.api.session.pushrules.getParentRule import org.matrix.android.sdk.api.session.pushrules.rest.PushRule import org.matrix.android.sdk.api.session.pushrules.rest.PushRuleAndKind import javax.inject.Inject