|
|
|
@ -5,81 +5,81 @@
|
|
|
|
|
|
|
|
|
|
// eslint-disable-next-line func-names
|
|
|
|
|
(function() {
|
|
|
|
|
'use strict';
|
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
window.Whisper = window.Whisper || {};
|
|
|
|
|
window.Whisper = window.Whisper || {};
|
|
|
|
|
|
|
|
|
|
const blockedNumbers = new Whisper.BlockedNumberCollection();
|
|
|
|
|
window.getBlockedNumbers = () => blockedNumbers;
|
|
|
|
|
const blockedNumbers = new Whisper.BlockedNumberCollection();
|
|
|
|
|
window.getBlockedNumbers = () => blockedNumbers;
|
|
|
|
|
|
|
|
|
|
window.BlockedNumberController = {
|
|
|
|
|
getAll() {
|
|
|
|
|
try {
|
|
|
|
|
this.load();
|
|
|
|
|
} catch (e) {
|
|
|
|
|
console.warn(e);
|
|
|
|
|
}
|
|
|
|
|
return blockedNumbers;
|
|
|
|
|
},
|
|
|
|
|
reset() {
|
|
|
|
|
blockedNumbers.reset([]);
|
|
|
|
|
},
|
|
|
|
|
load() {
|
|
|
|
|
window.log.info('BlockedNumberController: starting initial fetch');
|
|
|
|
|
window.BlockedNumberController = {
|
|
|
|
|
getAll() {
|
|
|
|
|
try {
|
|
|
|
|
this.load();
|
|
|
|
|
} catch (e) {
|
|
|
|
|
window.log.warn(e);
|
|
|
|
|
}
|
|
|
|
|
return blockedNumbers;
|
|
|
|
|
},
|
|
|
|
|
reset() {
|
|
|
|
|
blockedNumbers.reset([]);
|
|
|
|
|
},
|
|
|
|
|
load() {
|
|
|
|
|
window.log.info('BlockedNumberController: starting initial fetch');
|
|
|
|
|
|
|
|
|
|
if (blockedNumbers.length) {
|
|
|
|
|
throw new Error('BlockedNumberController: Already loaded!');
|
|
|
|
|
}
|
|
|
|
|
if (blockedNumbers.length) {
|
|
|
|
|
throw new Error('BlockedNumberController: Already loaded!');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!storage) {
|
|
|
|
|
throw new Error('BlockedNumberController: Could not load blocked numbers');
|
|
|
|
|
}
|
|
|
|
|
if (!storage) {
|
|
|
|
|
throw new Error('BlockedNumberController: Could not load blocked numbers');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Add the numbers to the collection
|
|
|
|
|
const numbers = storage.getBlockedNumbers();
|
|
|
|
|
blockedNumbers.add(
|
|
|
|
|
numbers.map(number => ({ number }))
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
block(number) {
|
|
|
|
|
const ourNumber = textsecure.storage.user.getNumber();
|
|
|
|
|
// Add the numbers to the collection
|
|
|
|
|
const numbers = storage.getBlockedNumbers();
|
|
|
|
|
blockedNumbers.add(
|
|
|
|
|
numbers.map(number => ({ number }))
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
block(number) {
|
|
|
|
|
const ourNumber = textsecure.storage.user.getNumber();
|
|
|
|
|
|
|
|
|
|
// Make sure we don't block ourselves
|
|
|
|
|
if (ourNumber === number) {
|
|
|
|
|
window.log.info('BlockedNumberController: Cannot block yourself!');
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
// Make sure we don't block ourselves
|
|
|
|
|
if (ourNumber === number) {
|
|
|
|
|
window.log.info('BlockedNumberController: Cannot block yourself!');
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
storage.addBlockedNumber(number);
|
|
|
|
|
storage.addBlockedNumber(number);
|
|
|
|
|
|
|
|
|
|
// Make sure we don't add duplicates
|
|
|
|
|
const exists = blockedNumbers.getNumber(number);
|
|
|
|
|
if (exists)
|
|
|
|
|
return exists;
|
|
|
|
|
// Make sure we don't add duplicates
|
|
|
|
|
const exists = blockedNumbers.getNumber(number);
|
|
|
|
|
if (exists)
|
|
|
|
|
return exists;
|
|
|
|
|
|
|
|
|
|
return blockedNumbers.add({ number });
|
|
|
|
|
},
|
|
|
|
|
unblock(number) {
|
|
|
|
|
storage.removeBlockedNumber(number);
|
|
|
|
|
return blockedNumbers.add({ number });
|
|
|
|
|
},
|
|
|
|
|
unblock(number) {
|
|
|
|
|
storage.removeBlockedNumber(number);
|
|
|
|
|
|
|
|
|
|
// Make sure we don't add duplicates
|
|
|
|
|
const exists = blockedNumbers.getNumber(number);
|
|
|
|
|
if (exists) {
|
|
|
|
|
blockedNumbers.remove(exists);
|
|
|
|
|
return exists;
|
|
|
|
|
}
|
|
|
|
|
// Make sure we don't add duplicates
|
|
|
|
|
const exists = blockedNumbers.getNumber(number);
|
|
|
|
|
if (exists) {
|
|
|
|
|
blockedNumbers.remove(exists);
|
|
|
|
|
return exists;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
},
|
|
|
|
|
unblockAll() {
|
|
|
|
|
const all = blockedNumbers.models;
|
|
|
|
|
all.forEach(number => {
|
|
|
|
|
storage.removeBlockedNumber(number);
|
|
|
|
|
blockedNumbers.remove(number);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
isBlocked(number) {
|
|
|
|
|
return storage.isBlocked(number);
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
})();
|
|
|
|
|
return null;
|
|
|
|
|
},
|
|
|
|
|
unblockAll() {
|
|
|
|
|
const all = blockedNumbers.models;
|
|
|
|
|
all.forEach(number => {
|
|
|
|
|
storage.removeBlockedNumber(number);
|
|
|
|
|
blockedNumbers.remove(number);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
isBlocked(number) {
|
|
|
|
|
return storage.isBlocked(number);
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
})();
|
|
|
|
|