|
@@ -472,6 +472,10 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
|
|
|
}
|
|
|
|
|
|
boolean bRcvEnd = false;
|
|
|
+ //add KSJ 20230322
|
|
|
+ //착신 통화에서 calling event 가 두번 들어오는 현상에서 popup 관련 에러가 발생하여 통화 종료 되는 현상 발행.
|
|
|
+ //boolean 변수 추가 하여 착신 통화시 필요한 부분에서만 event 처리 하도록 수정.
|
|
|
+ boolean bEventIncomingState = false;
|
|
|
|
|
|
@Override
|
|
|
public void onCallEvent(CALLOWNER eCallOwner, CALLSTATUS eCallStatus, CALLTYPE eCallType, String strRemoteIP, String strRemoteSIPID, String strMessage) {
|
|
@@ -497,20 +501,25 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
|
|
|
((MainActivity) mContext).displayRemoteID(RemoteIDInfo.strName);
|
|
|
Global.make1stCallHistoryInfo(strRemoteIP, strRemoteSIPID, CALLDIRECTION.OUT, CALLACTION.MISS, CALLRESULT.OUT_MISS);
|
|
|
} else if (eCallStatus == CALLSTATUS.CALLING) {
|
|
|
- bRcvEnd = false;
|
|
|
+
|
|
|
Global.playMelodyRepeat(eCallType);
|
|
|
super.setFinishTimerDestroy();
|
|
|
- MainActivity.mCallController.selectVideoSourceToSubPhone(CALLTYPE.GUARD, false);
|
|
|
- if (Global.getKitchenTVIdx(eCallOwner) >= 0 || Global.getBathPhoneIdx(eCallOwner) >= 0 || eCallOwner == CALLOWNER.SUB_WALLPAD || Global.getBathTVIdx(eCallOwner) >= 0) {
|
|
|
- MainActivity.mSubPhoneController.sendACKNewCall(eCallOwner, eCallType, RemoteIDInfo.strGuardTypeBySubPhone, String.valueOf(ConfigValues.bGuardVideoEnable));
|
|
|
- ((MainActivity) (getContext())).StartPopup(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
|
|
|
- }
|
|
|
- if (eCallOwner == CALLOWNER.MOBILE) {
|
|
|
- // 모바일에서 경비 발신하는 경우 (방문객 원격통화)
|
|
|
- ((MainActivity) mContext).showRemoteCallNoticeText(true); // 방문객원격통화 팝업 삭제 -> 상단 문구로 대체
|
|
|
+
|
|
|
+ if(!bEventIncomingState)
|
|
|
+ {
|
|
|
+ MainActivity.mCallController.selectVideoSourceToSubPhone(CALLTYPE.GUARD, false);
|
|
|
+ if (Global.getKitchenTVIdx(eCallOwner) >= 0 || Global.getBathPhoneIdx(eCallOwner) >= 0 || eCallOwner == CALLOWNER.SUB_WALLPAD || Global.getBathTVIdx(eCallOwner) >= 0) {
|
|
|
+ MainActivity.mSubPhoneController.sendACKNewCall(eCallOwner, eCallType, RemoteIDInfo.strGuardTypeBySubPhone, String.valueOf(ConfigValues.bGuardVideoEnable));
|
|
|
+ ((MainActivity) (getContext())).StartPopup(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
|
|
|
+ }
|
|
|
+ if (eCallOwner == CALLOWNER.MOBILE) {
|
|
|
+ // 모바일에서 경비 발신하는 경우 (방문객 원격통화)
|
|
|
+ ((MainActivity) mContext).showRemoteCallNoticeText(true); // 방문객원격통화 팝업 삭제 -> 상단 문구로 대체
|
|
|
// ((MainActivity) mContext).StartPopup(ID.POPUP.POPUP_NOTICE_REMOTECALL);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+ bRcvEnd = false;
|
|
|
+ bEventIncomingState = true;
|
|
|
MainActivity.mCallController.set1stCallTimer(eCallType, MainActivity.mCallController.mCTT.CALLING);
|
|
|
((MainActivity) mContext).displayRemoteID(RemoteIDInfo.strName);
|
|
|
Global.make1stCallHistoryInfo(strRemoteIP, strRemoteSIPID, CALLDIRECTION.OUT, CALLACTION.MISS, CALLRESULT.OUT_MISS);
|
|
@@ -588,6 +597,7 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
|
|
|
return;
|
|
|
}
|
|
|
bRcvEnd = true;
|
|
|
+ bEventIncomingState = false;
|
|
|
MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
|
|
|
if (eCallOwner == CALLOWNER.MOBILE) {
|
|
|
MainActivity.mCallController.quitMoIPCall();
|
|
@@ -609,6 +619,7 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
|
|
|
return;
|
|
|
}
|
|
|
bRcvEnd = true;
|
|
|
+ bEventIncomingState = false;
|
|
|
if (eCallOwner == CALLOWNER.MOBILE) {
|
|
|
// 모바일에서 경비 발신하는 경우 (방문객 원격통화)
|
|
|
((MainActivity) mContext).showRemoteCallNoticeText(false);
|
|
@@ -638,6 +649,7 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
|
|
|
return;
|
|
|
}
|
|
|
bRcvEnd = true;
|
|
|
+ bEventIncomingState = false;
|
|
|
MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
|
|
|
((MainActivity) mContext).displayRemoteID(null);
|
|
|
Global.stopMelodyRepeat();
|
|
@@ -658,6 +670,7 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
|
|
|
return;
|
|
|
}
|
|
|
bRcvEnd = true;
|
|
|
+ bEventIncomingState = false;
|
|
|
if (eCallOwner == CALLOWNER.MOBILE) {
|
|
|
((MainActivity) mContext).showRemoteCallNoticeText(false);
|
|
|
} else {
|