Support for blocking groups on mobile, via group/blocked syncs
This commit is contained in:
parent
cfe561b3eb
commit
9c399624cc
8 changed files with 89 additions and 15 deletions
|
@ -802,6 +802,7 @@
|
|||
}
|
||||
function onConfiguration(ev) {
|
||||
storage.put('read-receipt-setting', ev.configuration.readReceipts);
|
||||
ev.confirm();
|
||||
}
|
||||
|
||||
async function onContactReceived(ev) {
|
||||
|
@ -919,6 +920,12 @@
|
|||
updates.left = true;
|
||||
}
|
||||
|
||||
if (details.blocked === true) {
|
||||
storage.addBlockedGroup(id);
|
||||
} else if (details.blocked === false) {
|
||||
storage.removeBlockedGroup(id);
|
||||
}
|
||||
|
||||
await wrapDeferred(conversation.save(updates));
|
||||
const { expireTimer } = details;
|
||||
const isValidExpireTimer = typeof expireTimer === 'number';
|
||||
|
|
|
@ -4,27 +4,54 @@
|
|||
(function() {
|
||||
'use strict';
|
||||
|
||||
const BLOCKED_NUMBERS_ID = 'blocked';
|
||||
const BLOCKED_GROUPS_ID = 'blocked-groups';
|
||||
|
||||
storage.isBlocked = number => {
|
||||
const numbers = storage.get('blocked', []);
|
||||
const numbers = storage.get(BLOCKED_NUMBERS_ID, []);
|
||||
|
||||
return _.include(numbers, number);
|
||||
};
|
||||
storage.addBlockedNumber = number => {
|
||||
const numbers = storage.get('blocked', []);
|
||||
const numbers = storage.get(BLOCKED_NUMBERS_ID, []);
|
||||
if (_.include(numbers, number)) {
|
||||
return;
|
||||
}
|
||||
|
||||
window.log.info('adding', number, 'to blocked list');
|
||||
storage.put('blocked', numbers.concat(number));
|
||||
storage.put(BLOCKED_NUMBERS_ID, numbers.concat(number));
|
||||
};
|
||||
storage.removeBlockedNumber = number => {
|
||||
const numbers = storage.get('blocked', []);
|
||||
const numbers = storage.get(BLOCKED_NUMBERS_ID, []);
|
||||
if (!_.include(numbers, number)) {
|
||||
return;
|
||||
}
|
||||
|
||||
window.log.info('removing', number, 'from blocked list');
|
||||
storage.put('blocked', _.without(numbers, number));
|
||||
storage.put(BLOCKED_NUMBERS_ID, _.without(numbers, number));
|
||||
};
|
||||
|
||||
storage.isGroupBlocked = groupId => {
|
||||
const groupIds = storage.get(BLOCKED_GROUPS_ID, []);
|
||||
|
||||
return _.include(groupIds, groupId);
|
||||
};
|
||||
storage.addBlockedGroup = groupId => {
|
||||
const groupIds = storage.get(BLOCKED_GROUPS_ID, []);
|
||||
if (_.include(groupIds, groupId)) {
|
||||
return;
|
||||
}
|
||||
|
||||
window.log.info(`adding groupId(${groupId}) to blocked list`);
|
||||
storage.put(BLOCKED_GROUPS_ID, groupIds.concat(groupId));
|
||||
};
|
||||
storage.removeBlockedGroup = groupId => {
|
||||
const groupIds = storage.get(BLOCKED_GROUPS_ID, []);
|
||||
if (!_.include(groupIds, groupId)) {
|
||||
return;
|
||||
}
|
||||
|
||||
window.log.info(`removing group(${groupId} from blocked list`);
|
||||
storage.put(BLOCKED_GROUPS_ID, _.without(groupIds, groupId));
|
||||
};
|
||||
})();
|
||||
|
|
|
@ -29,6 +29,11 @@
|
|||
return { toastMessage: i18n('unblockToSend') };
|
||||
},
|
||||
});
|
||||
Whisper.BlockedGroupToast = Whisper.ToastView.extend({
|
||||
render_attributes() {
|
||||
return { toastMessage: i18n('unblockGroupToSend') };
|
||||
},
|
||||
});
|
||||
Whisper.LeftGroupToast = Whisper.ToastView.extend({
|
||||
render_attributes() {
|
||||
return { toastMessage: i18n('youLeftTheGroup') };
|
||||
|
@ -1436,6 +1441,9 @@
|
|||
if (this.model.isPrivate() && storage.isBlocked(this.model.id)) {
|
||||
toast = new Whisper.BlockedToast();
|
||||
}
|
||||
if (!this.model.isPrivate() && storage.isGroupBlocked(this.model.id)) {
|
||||
toast = new Whisper.BlockedGroupToast();
|
||||
}
|
||||
if (!this.model.isPrivate() && this.model.get('left')) {
|
||||
toast = new Whisper.LeftGroupToast();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue