대화방멸 알림 설정에 따른 노티 출력 여부, 현재 방일 경우에 대한 노티 출력여부 처리.
This commit is contained in:
parent
1eda1df54f
commit
97e65426f3
@ -41,7 +41,8 @@ import {
|
|||||||
SSVC_TYPE_ROOM_EXIT_FORCING_RES,
|
SSVC_TYPE_ROOM_EXIT_FORCING_RES,
|
||||||
SSVC_TYPE_ROOM_EXIT_RES,
|
SSVC_TYPE_ROOM_EXIT_RES,
|
||||||
SSVC_TYPE_ROOM_INVITE_RES,
|
SSVC_TYPE_ROOM_INVITE_RES,
|
||||||
ExitForcingResponse
|
ExitForcingResponse,
|
||||||
|
RoomInfo
|
||||||
} from '@ucap-webmessenger/protocol-room';
|
} from '@ucap-webmessenger/protocol-room';
|
||||||
import {
|
import {
|
||||||
StatusProtocolService,
|
StatusProtocolService,
|
||||||
@ -100,6 +101,7 @@ import { AppUserInfo, KEY_APP_USER_INFO } from '@app/types/app-user-info.type';
|
|||||||
|
|
||||||
import { environment } from '../../environments/environment';
|
import { environment } from '../../environments/environment';
|
||||||
import { NotificationMethod } from '@ucap-webmessenger/core';
|
import { NotificationMethod } from '@ucap-webmessenger/core';
|
||||||
|
import { Dictionary } from '@ngrx/entity';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class AppNotificationService {
|
export class AppNotificationService {
|
||||||
@ -151,7 +153,18 @@ export class AppNotificationService {
|
|||||||
|
|
||||||
this.eventProtocolService.notification$
|
this.eventProtocolService.notification$
|
||||||
.pipe(
|
.pipe(
|
||||||
tap(notiOrRes => {
|
withLatestFrom(
|
||||||
|
this.store.pipe(
|
||||||
|
select((state: any) => state.messenger.room.roomInfo as RoomInfo)
|
||||||
|
),
|
||||||
|
this.store.pipe(
|
||||||
|
select(
|
||||||
|
(state: any) =>
|
||||||
|
state.messenger.sync.room.entities as Dictionary<RoomInfo>
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
tap(([notiOrRes, curRoomInfo, roomList]) => {
|
||||||
switch (notiOrRes.SSVC_TYPE) {
|
switch (notiOrRes.SSVC_TYPE) {
|
||||||
case SSVC_TYPE_EVENT_SEND_RES:
|
case SSVC_TYPE_EVENT_SEND_RES:
|
||||||
case SSVC_TYPE_EVENT_SEND_NOTI:
|
case SSVC_TYPE_EVENT_SEND_NOTI:
|
||||||
@ -170,33 +183,54 @@ export class AppNotificationService {
|
|||||||
|
|
||||||
// notification..
|
// notification..
|
||||||
if (notiOrRes.SSVC_TYPE === SSVC_TYPE_EVENT_SEND_NOTI) {
|
if (notiOrRes.SSVC_TYPE === SSVC_TYPE_EVENT_SEND_NOTI) {
|
||||||
const appUserInfo = this.localStorageService.encGet<
|
let doNoti = true;
|
||||||
AppUserInfo
|
|
||||||
>(KEY_APP_USER_INFO, environment.customConfig.appKey);
|
|
||||||
|
|
||||||
if (appUserInfo.settings.notification.use) {
|
// 방별 알림이 꺼져 있으면 노티 안함.
|
||||||
const notiReq: NotificationRequest = {
|
if (
|
||||||
type: NotificationType.Event,
|
!!roomList[noti.roomSeq] &&
|
||||||
seq: noti.roomSeq,
|
!roomList[noti.roomSeq].receiveAlarm
|
||||||
title: '메세지가 도착했습니다.',
|
) {
|
||||||
contents: StringUtil.convertFinalEventMessage(
|
doNoti = false;
|
||||||
noti.eventType,
|
}
|
||||||
noti.message
|
|
||||||
),
|
// 현재 열려 있는 방일경우 노티 안함.
|
||||||
image: '',
|
if (
|
||||||
useSound: [
|
!!curRoomInfo &&
|
||||||
NotificationMethod.Sound,
|
!!curRoomInfo.roomSeq &&
|
||||||
NotificationMethod.SoundAndAlert
|
curRoomInfo.roomSeq === noti.roomSeq
|
||||||
].some(
|
) {
|
||||||
n => n === appUserInfo.settings.notification.method
|
doNoti = false;
|
||||||
)
|
}
|
||||||
? true
|
|
||||||
: false,
|
if (doNoti) {
|
||||||
displayTime:
|
const appUserInfo = this.localStorageService.encGet<
|
||||||
appUserInfo.settings.notification.alertExposureTime *
|
AppUserInfo
|
||||||
1000
|
>(KEY_APP_USER_INFO, environment.customConfig.appKey);
|
||||||
};
|
|
||||||
this.nativeService.notify(notiReq);
|
if (appUserInfo.settings.notification.use) {
|
||||||
|
const notiReq: NotificationRequest = {
|
||||||
|
type: NotificationType.Event,
|
||||||
|
seq: noti.roomSeq,
|
||||||
|
title: '메세지가 도착했습니다.',
|
||||||
|
contents: StringUtil.convertFinalEventMessage(
|
||||||
|
noti.eventType,
|
||||||
|
noti.message
|
||||||
|
),
|
||||||
|
image: '',
|
||||||
|
useSound: [
|
||||||
|
NotificationMethod.Sound,
|
||||||
|
NotificationMethod.SoundAndAlert
|
||||||
|
].some(
|
||||||
|
n => n === appUserInfo.settings.notification.method
|
||||||
|
)
|
||||||
|
? true
|
||||||
|
: false,
|
||||||
|
displayTime:
|
||||||
|
appUserInfo.settings.notification.alertExposureTime *
|
||||||
|
1000
|
||||||
|
};
|
||||||
|
this.nativeService.notify(notiReq);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user