Prechádzať zdrojové kódy

2021.11.16 VIP
1. 화면 잔상 수정

DESKTOP-UNEGUH3\MadeinLab_SW_02 3 rokov pred
rodič
commit
b92ba99cb8

+ 12 - 1
WallPadCall/src/main/java/kr/co/icontrols/callengine/engine/CallController.java

@@ -1284,7 +1284,18 @@ public class CallController extends CallManager implements SIPEventListener {
                     mCallInfo.resetCallStatus();
                     quitMoIPCall();
                 }
-            } else {
+            }
+            else if (eEventType == CALLEVENTTYPE.REJECT_BUSY_CALL) {
+                // 문열림 요청
+                if (mCallEventListener != null) {
+                    mCallEventListener.onSubPhoneEvent(eCallOwner, CALLSTATUS.BUSY, eCallType, strTargetID, strMessage);
+                } else {
+                    LOG_WARN("[onSubPhoneEvent] mCallEventListener is null!!");
+                    mCallInfo.resetCallStatus();
+                    quitMoIPCall();
+                }
+            }
+            else {
                 // 기타
                 LOG_WARN("[onSubPhoneEvent] = ERROR = Unknown eEventType!! [" + eEventType + "]");
             }

+ 4 - 0
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/MainActivity.java

@@ -2866,6 +2866,10 @@ public class MainActivity extends WpadActivity {
                 } else if (strRemoteID.contains("경비")) {
                     LOG_INFO("[displayRemoteID] GUARD");
                 }
+                else {
+                    LOG_INFO("[displayRemoteID] etc");
+                    strRemoteID = "";
+                }
                 TXT_REMOTE_ID.setText(strRemoteID);
                 TXT_REMOTE_ID.setVisibility(View.VISIBLE);
             } else {

+ 52 - 12
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkFront.java

@@ -314,6 +314,7 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
             if (MainActivity.mIOInterface != null) MainActivity.mIOInterface.ctrlWallPadLED_Call(false);
             nSelectedFilter = 0;
             sendReliefFilterSelectBR(nSelectedFilter);
+            ctrlAlphaBlending(false);
 
             if (TalkFrontHandler != null) {
                 TalkFrontHandler.removeMessages(TalkFront.HANDLERMSG.ENABLE_SAVE_VISITORPICTURE);
@@ -373,6 +374,7 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
                         doTalk(CALLOWNER.WALLPAD);
                     } else if (nID == ID.SCREEN.TALKFRONT.ELEMENT.BUTTON.END) {
                         bEnableVisitorPic = false;
+                        ctrlAlphaBlending(false);
                         doEnd();
                         send_stop_talking_request(RemoteIDInfo.strIP);
                     } else if (nID == ID.SCREEN.TALKFRONT.ELEMENT.BUTTON.SAVE_PICTURE) {
@@ -383,7 +385,7 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
                         sendHandlerMsgDelayed(TalkFront.HANDLERMSG.ENABLE_SAVE_VISITORPICTURE, 0, 0, null, 3000);
                     } else if (nID == ID.SCREEN.TALKFRONT.ELEMENT.BUTTON.DOOROPEN) {
                         if (!bSentiMAP) {
-                            sendHandlerMsg(TalkFront.HANDLERMSG.HIDE_LOBBYVIDEO, 0, 0, null); // 문열림으로 통화 종료시 로비 영상 노이즈가 생기므로 영상을 GUI 아래로 내림
+                            sendHandlerMsgDelayed(TalkFront.HANDLERMSG.HIDE_LOBBYVIDEO, 0, 0, null, 3000); // 문열림으로 통화 종료시 로비 영상 노이즈가 생기므로 영상을 GUI 아래로 내림
                             doDoorOpen();
                             //send_stop_talking_request(RemoteIDInfo.strIP);
                         }
@@ -437,7 +439,7 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
             doTalkByBTN(CALLOWNER.WALLPAD);
         } else if (keyCode == Declare.BTN.DOOR_OPEN || keyCode == Declare.BTN.DOOR_OPEN_V40) {
             if (!bSentiMAP) {
-                sendHandlerMsg(TalkFront.HANDLERMSG.HIDE_LOBBYVIDEO, 0, 0, null); // 문열림으로 통화 종료시 로비 영상 노이즈가 생기므로 영상을 GUI 아래로 내림
+                sendHandlerMsgDelayed(TalkFront.HANDLERMSG.HIDE_LOBBYVIDEO, 0, 0, null, 3000); // 문열림으로 통화 종료시 로비 영상 노이즈가 생기므로 영상을 GUI 아래로 내림
                 doDoorOpen();
             }
         } else if (keyCode == Declare.BTN.PLAY_DECODED_VIDEO || keyCode == Declare.BTN.PLAY_DECODED_VIDEO_V40) {
@@ -882,7 +884,12 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
                         if (doSubPhoneDoorOpen(eCallOwner, eCallType))
                             MainActivity.mSubPhoneController.sendACKDoorOpen(eCallOwner, eCallType);
                     }
-                } else {
+                }
+                else if (eCallStatus == CALLSTATUS.BUSY) {
+                    if (eCallOwner != CALLOWNER.WALLPAD) {
+                        doEnd();
+                    }
+                }else {
                     Log.w(TAG, "[onSubPhoneEvent] Incorrect eCallStatus!!! eCallStatus = " + eCallStatus);
                 }
             } else {
@@ -1508,6 +1515,8 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
 
     private void enableSavePicBTN(boolean bEnable) {
         try {
+
+            //LOG_INFO("[enableSavePicBTN] enableSavePicBTN [" + bEnable + "]");
             if (bEnable) {
                 if (ConfigValues.bReliefCall)
                     BTN_SAVE_PICTURE.setImageResource(R.drawable.btn_photo_normal);
@@ -1550,12 +1559,16 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
 //                        }
                         //MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
 //                        MainActivity.mSound.Play(SND.mode.OPENDOOR);
-                        mPathCheckHandler.sendEmptyMessage(2); // 통화패스 Normal로 변경 확인 후 멘트 출력 seulki
 
-                        // 출입 데이터 기록(로비 문열림)
-//                        WallpadAccessData WpadAccessData = new WallpadAccessData(getContext());
-//                        WpadAccessData.Insert(WallpadAccessData.KIND.WPAD_CALL, null);
-//                        WpadAccessData.closeDB();
+                        int nMentDuration = MainActivity.mSound.PlayMent(SND.mode.OPENDOOR);
+                        try {
+                            Log.d(TAG, "[mPathCheckHandler.handleMessage] nMentDuration -> " + nMentDuration);
+                            Thread.sleep(nMentDuration + 1500);
+                        } catch (InterruptedException e) {
+                            //e.printStackTrace();
+                            LogUtil.errorLogInfo("", TAG, e);
+                        }
+
                         enableTalkBTN(false);
                         enableEndBTN(false);
                         enableOpenDoorBTN(false);
@@ -1567,6 +1580,24 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
 //                            BTN_RELIEF_FILTER_04.setButtonEventOffEnable(R.drawable.btn_filter_4_normal);
                         }
                         doEnd();
+//
+//                        mPathCheckHandler.sendEmptyMessage(2); // 통화패스 Normal로 변경 확인 후 멘트 출력 seulki
+//
+//                        // 출입 데이터 기록(로비 문열림)
+////                        WallpadAccessData WpadAccessData = new WallpadAccessData(getContext());
+////                        WpadAccessData.Insert(WallpadAccessData.KIND.WPAD_CALL, null);
+////                        WpadAccessData.closeDB();
+//                        enableTalkBTN(false);
+//                        enableEndBTN(false);
+//                        enableOpenDoorBTN(false);
+//                        enableSavePicBTN(false);
+//                        if (ConfigValues.bReliefCall) {
+//                            BTN_RELIEF_FILTER_01.setButtonEventOffEnable(R.drawable.btn_big_filter_1_normal);
+//                            BTN_RELIEF_FILTER_02.setButtonEventOffEnable(R.drawable.btn_big_filter_2_normal);
+////                            BTN_RELIEF_FILTER_03.setButtonEventOffEnable(R.drawable.btn_filter_3_normal);
+////                            BTN_RELIEF_FILTER_04.setButtonEventOffEnable(R.drawable.btn_filter_4_normal);
+//                        }
+//                        doEnd();
                     }
 
                     @Override
@@ -2233,8 +2264,9 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
                     break;
 
                 case TalkFront.HANDLERMSG.HIDE_LOBBYVIDEO:
-                    if (IMG_VIDEO_MODULE != null) IMG_VIDEO_MODULE.setImageResource(R.drawable.image_lobby);
-                    if (MainActivity.mIOInterface != null) MainActivity.mIOInterface.ctrlPopupGUI(true);
+                    ctrlAlphaBlending(false);
+                    //if (IMG_VIDEO_MODULE != null) IMG_VIDEO_MODULE.setImageResource(R.drawable.image_lobby);
+                    //if (MainActivity.mIOInterface != null) MainActivity.mIOInterface.ctrlPopupGUI(true);
                     break;
 
                 default:
@@ -2366,7 +2398,15 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
                     //e.printStackTrace();
                     LogUtil.errorLogInfo("", TAG, e);
                 }
-                MainActivity.mIOInterface.setMICGain(nCurrentMicGain);
+
+                try {
+                    MainActivity.mIOInterface.setMICGain(nCurrentMicGain);
+                }
+                catch (NullPointerException ne)
+                {
+                    ne.fillInStackTrace();
+                }
+
             }
         }
     };
@@ -2398,7 +2438,7 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
                         //e.printStackTrace();
                         LogUtil.errorLogInfo("", TAG, e);
                     }
-                    sendHandlerMsg(TalkFront.HANDLERMSG.HIDE_LOBBYVIDEO, 0, 0, null);
+                    sendHandlerMsgDelayed(TalkFront.HANDLERMSG.HIDE_LOBBYVIDEO, 0, 0, null, 3000);
                 }
             }
 

+ 32 - 16
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkLobby.java

@@ -308,6 +308,7 @@ public class TalkLobby extends WpadScreen implements CallEventListener, MainEven
             if (MainActivity.mIOInterface != null) MainActivity.mIOInterface.ctrlWallPadLED_Call(false);
             nSelectedFilter = 0;
             sendReliefFilterSelectBR(nSelectedFilter);
+            ctrlAlphaBlending(false);
 
             if (TalkLobbyHandler != null) {
                 TalkLobbyHandler.removeMessages(HANDLERMSG.ENABLE_SAVE_VISITORPICTURE);
@@ -414,6 +415,7 @@ public class TalkLobby extends WpadScreen implements CallEventListener, MainEven
             if (eEvent == MAINEVENT.BTN_HOME) {
                 send_stop_talking_request(RemoteIDInfo.strIP);
                 if (MainActivity.mCallController.mCallInfo.getLOBBY() != CALLSTATUS.TALKING) Sound().Play(SND.effect.TOUCH_LATCHED);
+                ctrlAlphaBlending(false);
                 finishWallpadCallApp();
             } else if (eEvent == MAINEVENT.BTN_HOME_MOBILE) {
                 finishWallpadCallApp();
@@ -887,14 +889,14 @@ public class TalkLobby extends WpadScreen implements CallEventListener, MainEven
         try {
             LOG_INFO("[onShowRemoteVideo] bShow [" + bShow + "]");
 
-            if (MainActivity.bFFMPEGEnable) ((MainActivity)mContext).showRemoteVideo(bShow, false);
-
-            if (bShow) {
-                sendHandlerMsgDelayed(HANDLERMSG.ENABLE_SAVE_VISITORPICTURE, 0, 0, null, 3000);
-            }
-            else {
-                enableSavePicBTN(false);
-            }
+//            if (MainActivity.bFFMPEGEnable) ((MainActivity)mContext).showRemoteVideo(bShow, false);
+//
+//            if (bShow) {
+//                sendHandlerMsgDelayed(HANDLERMSG.ENABLE_SAVE_VISITORPICTURE, 0, 0, null, 3000);
+//            }
+//            else {
+//                enableSavePicBTN(false);
+//            }
         } catch (RuntimeException re) {
             LogUtil.errorLogInfo("", TAG, re);
         } catch (Exception e) {
@@ -1444,6 +1446,7 @@ public class TalkLobby extends WpadScreen implements CallEventListener, MainEven
 
     private void enableSavePicBTN(boolean bEnable) {
         try {
+            //LOG_INFO("[enableSavePicBTN] enableSavePicBTN [" + bEnable + "]");
             if (bEnable) {
                 if (ConfigValues.bReliefCall)
                     BTN_SAVE_PICTURE.setImageResource(R.drawable.btn_photo_normal);
@@ -1469,6 +1472,7 @@ public class TalkLobby extends WpadScreen implements CallEventListener, MainEven
         LOG_INFO("[send_lobby_open_request] strTargetIP [" + strTargetIP + "]");
         MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
         nCurrentMicGain = MainActivity.mIOInterface.getMICGain();
+        MainActivity.mIOInterface.setMICGain(0);
 
         //((MainActivity) mContext).Device_DoorOpen(19); //16 start
         try {
@@ -1486,12 +1490,17 @@ public class TalkLobby extends WpadScreen implements CallEventListener, MainEven
 //                        }
                         //MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
 //                        MainActivity.mSound.Play(SND.mode.OPENDOOR);
-                        mPathCheckHandler.sendEmptyMessage(2); // 통화패스 Normal로 변경 확인 후 멘트 출력 seulki
+                        //mPathCheckHandler.sendEmptyMessage(2); // 통화패스 Normal로 변경 확인 후 멘트 출력 seulki
+
+                        int nMentDuration = MainActivity.mSound.PlayMent(SND.mode.OPENDOOR);
+                        try {
+                            Log.d(TAG, "[mPathCheckHandler.handleMessage] nMentDuration -> " + nMentDuration);
+                            Thread.sleep(nMentDuration + 1500);
+                        } catch (InterruptedException e) {
+                            //e.printStackTrace();
+                            LogUtil.errorLogInfo("", TAG, e);
+                        }
 
-                        // 출입 데이터 기록(로비 문열림)
-//                        WallpadAccessData WpadAccessData = new WallpadAccessData(getContext());
-//                        WpadAccessData.Insert(WallpadAccessData.KIND.WPAD_CALL, null);
-//                        WpadAccessData.closeDB();
                         enableTalkBTN(false);
                         enableEndBTN(false);
                         enableOpenDoorBTN(false);
@@ -2170,8 +2179,8 @@ public class TalkLobby extends WpadScreen implements CallEventListener, MainEven
                     break;
 
                 case HANDLERMSG.HIDE_LOBBYVIDEO:
-                    if (IMG_VIDEO_MODULE != null) IMG_VIDEO_MODULE.setImageResource(R.drawable.image_lobby);
-                    if (MainActivity.mIOInterface != null) MainActivity.mIOInterface.ctrlPopupGUI(true);
+                    //if (IMG_VIDEO_MODULE != null) IMG_VIDEO_MODULE.setImageResource(R.drawable.image_lobby);
+                    //if (MainActivity.mIOInterface != null) MainActivity.mIOInterface.ctrlPopupGUI(true);
                     break;
 
                 default:
@@ -2303,7 +2312,14 @@ public class TalkLobby extends WpadScreen implements CallEventListener, MainEven
                     //e.printStackTrace();
                     LogUtil.errorLogInfo("", TAG, e);
                 }
-                MainActivity.mIOInterface.setMICGain(nCurrentMicGain);
+                try {
+                    MainActivity.mIOInterface.setMICGain(nCurrentMicGain);
+                }
+                catch (NullPointerException ne)
+                {
+                    ne.fillInStackTrace();
+                }
+
             }
         }
     };

+ 12 - 1
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkResidence.java

@@ -401,6 +401,16 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                         // 통화중에 버튼 터치음을 발생시키면, 통화 상대방에게 터치음이 전달되므로 통화중에는 터치음을 출력하지 않는다.(JEFF, 2019.12.24)
                         if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.TALKING) MainActivity.mSound.Play(SND.effect.TOUCH_LATCHED);
 
+                        BTN_END.setButtonEventOffEnable(R.drawable.btn_residence_end_disabled2);
+
+                        new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
+                            @Override
+                            public void run() {
+                                BTN_END.setImageResource(R.drawable.btn_residence_end_normal3);
+                                BTN_END.setButtonEventOffDisable();
+                            }
+                        }, 2000);
+
                         if (Global.TargetInputStep == TARGETINFOINPUTSTEP.DONE) {
                             doTalk(CALLOWNER.WALLPAD);
                         }
@@ -794,7 +804,8 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                         return;
                     }
                     bRcvEnd = true;
-                    int nTime = MainActivity.mSound.PlayMent(SND.call.BUSY_TRY_LATER);
+                    //int nTime = MainActivity.mSound.PlayMent(SND.call.BUSY_TRY_LATER);
+                    int nTime = MainActivity.mSound.PlayMent(SND.guard.TRYLATER);
                     Log.i(TAG, "[onCallEvent] nTime [" + nTime + "]");
                     Thread.sleep(nTime + 500);