Add missing push rules

This commit is contained in:
Benoit Marty 2020-02-28 19:02:13 +01:00
parent 8a2bafec5f
commit 551604cdcb
5 changed files with 57 additions and 18 deletions

View file

@ -148,6 +148,11 @@ data class PushRule(
const val RULE_ID_CALL = ".m.rule.call"
const val RULE_ID_SUPPRESS_BOTS_NOTIFICATIONS = ".m.rule.suppress_notices"
const val RULE_ID_ALL_OTHER_MESSAGES_ROOMS = ".m.rule.message"
const val RULE_ID_AT_ROOMS = ".m.rule.roomnotif"
const val RULE_ID_TOMBSTONE = ".m.rule.tombstone"
const val RULE_ID_E2E_ONE_TO_ONE_ROOM = ".m.rule.encrypted_room_one_to_one"
const val RULE_ID_E2E_GROUP = ".m.rule.encrypted"
const val RULE_ID_REACTION = ".m.rule.reaction"
const val RULE_ID_FALLBACK = ".m.rule.fallback"
/* ==========================================================================================

View file

@ -121,6 +121,10 @@ class VectorPreferences @Inject constructor(private val context: Context) {
const val SETTINGS_MESSAGES_IN_GROUP_CHAT_PREFERENCE_KEY = "SETTINGS_MESSAGES_IN_GROUP_CHAT_PREFERENCE_KEY_2"
const val SETTINGS_INVITED_TO_ROOM_PREFERENCE_KEY = "SETTINGS_INVITED_TO_ROOM_PREFERENCE_KEY_2"
const val SETTINGS_CALL_INVITATIONS_PREFERENCE_KEY = "SETTINGS_CALL_INVITATIONS_PREFERENCE_KEY_2"
const val SETTINGS_MESSAGES_CONTAINING_AT_ROOM_PREFERENCE_KEY = "SETTINGS_MESSAGES_CONTAINING_AT_ROOM_PREFERENCE_KEY"
const val SETTINGS_MESSAGES_IN_E2E_ONE_ONE_CHAT_PREFERENCE_KEY = "SETTINGS_MESSAGES_IN_E2E_ONE_ONE_CHAT_PREFERENCE_KEY"
const val SETTINGS_MESSAGES_IN_E2E_GROUP_CHAT_PREFERENCE_KEY = "SETTINGS_MESSAGES_IN_E2E_GROUP_CHAT_PREFERENCE_KEY"
const val SETTINGS_ROOMS_UPGRADED_KEY = "SETTINGS_ROOMS_UPGRADED_KEY"
// media
private const val SETTINGS_DEFAULT_MEDIA_COMPRESSION_KEY = "SETTINGS_DEFAULT_MEDIA_COMPRESSION_KEY"

View file

@ -118,23 +118,27 @@ class VectorSettingsAdvancedNotificationPreferenceFragment @Inject constructor(
if (newRule != null) {
displayLoadingView()
session.updatePushRuleActions(ruleAndKind.kind, preference.ruleAndKind?.pushRule ?: ruleAndKind.pushRule, newRule, object : MatrixCallback<Unit> {
override fun onSuccess(data: Unit) {
if (!isAdded) {
return
}
preference.setPushRule(ruleAndKind.copy(pushRule = newRule))
hideLoadingView()
}
session.updatePushRuleActions(
ruleAndKind.kind,
preference.ruleAndKind?.pushRule ?: ruleAndKind.pushRule,
newRule,
object : MatrixCallback<Unit> {
override fun onSuccess(data: Unit) {
if (!isAdded) {
return
}
preference.setPushRule(ruleAndKind.copy(pushRule = newRule))
hideLoadingView()
}
override fun onFailure(failure: Throwable) {
if (!isAdded) {
return
}
hideLoadingView()
activity?.toast(errorFormatter.toHumanReadable(failure))
}
})
override fun onFailure(failure: Throwable) {
if (!isAdded) {
return
}
hideLoadingView()
activity?.toast(errorFormatter.toHumanReadable(failure))
}
})
}
false
}
@ -216,14 +220,18 @@ class VectorSettingsAdvancedNotificationPreferenceFragment @Inject constructor(
private const val REQUEST_NOTIFICATION_RINGTONE = 888
// preference name <-> rule Id
private var mPrefKeyToBingRuleId = mapOf(
private val mPrefKeyToBingRuleId = mapOf(
VectorPreferences.SETTINGS_CONTAINING_MY_DISPLAY_NAME_PREFERENCE_KEY to PushRule.RULE_ID_CONTAIN_DISPLAY_NAME,
VectorPreferences.SETTINGS_CONTAINING_MY_USER_NAME_PREFERENCE_KEY to PushRule.RULE_ID_CONTAIN_USER_NAME,
VectorPreferences.SETTINGS_MESSAGES_IN_ONE_TO_ONE_PREFERENCE_KEY to PushRule.RULE_ID_ONE_TO_ONE_ROOM,
VectorPreferences.SETTINGS_MESSAGES_IN_GROUP_CHAT_PREFERENCE_KEY to PushRule.RULE_ID_ALL_OTHER_MESSAGES_ROOMS,
VectorPreferences.SETTINGS_INVITED_TO_ROOM_PREFERENCE_KEY to PushRule.RULE_ID_INVITE_ME,
VectorPreferences.SETTINGS_CALL_INVITATIONS_PREFERENCE_KEY to PushRule.RULE_ID_CALL,
VectorPreferences.SETTINGS_MESSAGES_SENT_BY_BOT_PREFERENCE_KEY to PushRule.RULE_ID_SUPPRESS_BOTS_NOTIFICATIONS
VectorPreferences.SETTINGS_MESSAGES_SENT_BY_BOT_PREFERENCE_KEY to PushRule.RULE_ID_SUPPRESS_BOTS_NOTIFICATIONS,
VectorPreferences.SETTINGS_MESSAGES_CONTAINING_AT_ROOM_PREFERENCE_KEY to PushRule.RULE_ID_AT_ROOMS,
VectorPreferences.SETTINGS_MESSAGES_IN_E2E_ONE_ONE_CHAT_PREFERENCE_KEY to PushRule.RULE_ID_E2E_ONE_TO_ONE_ROOM,
VectorPreferences.SETTINGS_MESSAGES_IN_E2E_GROUP_CHAT_PREFERENCE_KEY to PushRule.RULE_ID_E2E_GROUP,
VectorPreferences.SETTINGS_ROOMS_UPGRADED_KEY to PushRule.RULE_ID_TOMBSTONE
)
}
}

View file

@ -12,6 +12,10 @@
<!-- BEGIN Strings added by Benoit -->
<string name="settings_notification_configuration">Notifications configuration</string>
<string name="settings_messages_at_room">Messages containing @room</string>
<string name="settings_messages_in_e2e_one_to_one">Encrypted messages in one-to-one chats</string>
<string name="settings_messages_in_e2e_group_chat">Encrypted messages in group chats</string>
<string name="settings_when_rooms_are_upgraded">When rooms are upgraded</string>
<!-- END Strings added by Benoit -->

View file

@ -14,14 +14,28 @@
android:key="SETTINGS_CONTAINING_MY_USER_NAME_PREFERENCE_KEY_2"
android:title="@string/settings_containing_my_user_name" />
<im.vector.riotx.core.preference.BingRulePreference
android:key="SETTINGS_MESSAGES_CONTAINING_AT_ROOM_PREFERENCE_KEY"
android:title="@string/settings_messages_at_room" />
<!-- TODO Support message with keywords rule -->
<im.vector.riotx.core.preference.BingRulePreference
android:key="SETTINGS_MESSAGES_IN_ONE_TO_ONE_PREFERENCE_KEY_2"
android:title="@string/settings_messages_in_one_to_one" />
<im.vector.riotx.core.preference.BingRulePreference
android:key="SETTINGS_MESSAGES_IN_E2E_ONE_ONE_CHAT_PREFERENCE_KEY"
android:title="@string/settings_messages_in_e2e_one_to_one" />
<im.vector.riotx.core.preference.BingRulePreference
android:key="SETTINGS_MESSAGES_IN_GROUP_CHAT_PREFERENCE_KEY_2"
android:title="@string/settings_messages_in_group_chat" />
<im.vector.riotx.core.preference.BingRulePreference
android:key="SETTINGS_MESSAGES_IN_E2E_GROUP_CHAT_PREFERENCE_KEY"
android:title="@string/settings_messages_in_e2e_group_chat" />
<im.vector.riotx.core.preference.BingRulePreference
android:key="SETTINGS_INVITED_TO_ROOM_PREFERENCE_KEY_2"
android:title="@string/settings_invited_to_room" />
@ -34,6 +48,10 @@
android:key="SETTINGS_MESSAGES_SENT_BY_BOT_PREFERENCE_KEY_2"
android:title="@string/settings_messages_sent_by_bot" />
<im.vector.riotx.core.preference.BingRulePreference
android:key="SETTINGS_ROOMS_UPGRADED_KEY"
android:title="@string/settings_when_rooms_are_upgraded" />
</im.vector.riotx.core.preference.VectorPreferenceCategory>
<im.vector.riotx.core.preference.VectorPreferenceCategory