Change Phone Number notifications
This commit is contained in:
parent
4b82ac387b
commit
a001882d58
17 changed files with 277 additions and 39 deletions
|
@ -95,6 +95,7 @@ import {
|
|||
ContactSyncEvent,
|
||||
GroupEvent,
|
||||
GroupSyncEvent,
|
||||
EnvelopeEvent,
|
||||
} from './messageReceiverEvents';
|
||||
|
||||
// TODO: remove once we move away from ArrayBuffers
|
||||
|
@ -459,6 +460,11 @@ export default class MessageReceiver
|
|||
handler: (ev: GroupSyncEvent) => void
|
||||
): void;
|
||||
|
||||
public addEventListener(
|
||||
name: 'envelope',
|
||||
handler: (ev: EnvelopeEvent) => void
|
||||
): void;
|
||||
|
||||
public addEventListener(name: string, handler: EventHandler): void {
|
||||
return super.addEventListener(name, handler);
|
||||
}
|
||||
|
@ -981,8 +987,6 @@ export default class MessageReceiver
|
|||
if (this.stoppingProcessing) {
|
||||
return;
|
||||
}
|
||||
// No decryption is required for delivery receipts, so the decrypted field of
|
||||
// the Unprocessed model will never be set
|
||||
|
||||
if (envelope.content) {
|
||||
await this.innerHandleContentMessage(envelope, plaintext);
|
||||
|
|
|
@ -5,7 +5,11 @@
|
|||
import { PublicKey } from '@signalapp/signal-client';
|
||||
|
||||
import { SignalService as Proto } from '../protobuf';
|
||||
import { ProcessedDataMessage, ProcessedSent } from './Types.d';
|
||||
import {
|
||||
ProcessedEnvelope,
|
||||
ProcessedDataMessage,
|
||||
ProcessedSent,
|
||||
} from './Types.d';
|
||||
import type {
|
||||
ModifiedContactDetails,
|
||||
ModifiedGroupDetails,
|
||||
|
@ -136,6 +140,12 @@ export class GroupSyncEvent extends Event {
|
|||
}
|
||||
}
|
||||
|
||||
export class EnvelopeEvent extends Event {
|
||||
constructor(public readonly envelope: ProcessedEnvelope) {
|
||||
super('envelope');
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Confirmable events below
|
||||
//
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
import { WebAPICredentials } from '../Types.d';
|
||||
|
||||
import { strictAssert } from '../../util/assert';
|
||||
import { StorageInterface } from '../../types/Storage.d';
|
||||
|
||||
import Helpers from '../Helpers';
|
||||
|
@ -27,6 +28,25 @@ export class User {
|
|||
window.log.info('storage.user: uuid and device id changed');
|
||||
}
|
||||
|
||||
public async setNumber(number: string): Promise<void> {
|
||||
if (this.getNumber() === number) {
|
||||
return;
|
||||
}
|
||||
|
||||
const deviceId = this.getDeviceId();
|
||||
strictAssert(
|
||||
deviceId !== undefined,
|
||||
'Cannot update device number without knowing device id'
|
||||
);
|
||||
|
||||
window.log.info('storage.user: number changed');
|
||||
|
||||
await this.storage.put('number_id', `${number}.${deviceId}`);
|
||||
|
||||
// Notify redux about phone number change
|
||||
window.Whisper.events.trigger('userChanged');
|
||||
}
|
||||
|
||||
public getNumber(): string | undefined {
|
||||
const numberId = this.storage.get('number_id');
|
||||
if (numberId === undefined) return undefined;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue