Переглянути джерело

[WallPadMain]
1. 거동 수상자 이슈(Main쪽 수정)
- 녹화 중이면서, 통화 시도인경우에 대한 처리를 분리

jglee 2 роки тому
батько
коміт
a2a28bed43

+ 38 - 4
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/util/iMapServer.java

@@ -2341,9 +2341,45 @@ public class iMapServer extends Service {
 						// 현관 도어폰 벨 눌림 입력 상태
 						// Jeff added below codes for call app (2018.01.25)
                         Log.i(TAG, "[WallPadInterface.BTN_DOOR] bWallPadCallLive [" + bWallPadCallLive + "], bBlockFrontCall [" + bBlockFrontCall + "]");
-                        //여기서 거동 수상자 확인이 필요함
 
-                        if (Common.bWallPadRecoder && bWallPadCallLive) {
+                        if (!bWallPadCallLive && !bBlockFrontCall) {
+                            bBlockFrontCall = true;
+                            handlerCallCtrl.removeMessages(CALLCTRLHANDLERMSG.RELEASE_BLOCK_FRONTCALL);
+                            handlerCallCtrl.sendEmptyMessageDelayed(CALLCTRLHANDLERMSG.RELEASE_BLOCK_FRONTCALL, 3000);
+                            mWallPadAPI.SetDevService_DoorCamUseOnOff(true);
+
+                            try {
+                                if (ModelType == MODEL_TYPE.IHN_1020GL) {
+                                    mIGW200.ctrlDeviceIO(IGW200dAPI.OUTPUT.DOOR_POWER, true);
+                                    mIGW200.ctrlDeviceIO(IGW200dAPI.OUTPUT.BELL_CONT, true);
+                                }
+                                else if (Version.getModelType() == Version.MODEL_TYPE.IHN_D101 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I
+                                        || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K_I
+                                        || Version.getModelType() == MODEL_TYPE.IHN_1010GL || Version.getModelType() == MODEL_TYPE.IHN_1010GL_I
+                                        || Version.getModelType() == Version.MODEL_TYPE.IHN_1010GL_I_2443 || Version.getModelType() == Version.MODEL_TYPE.IHN_1010GL_I_6410
+                                        || Version.getModelType() == MODEL_TYPE.IHN_D101_I_OCF) {
+                                    mIGW300.ctrlDeviceIO(IGW300API.OUTPUT.DOOR_POWER, true);
+                                    mIGW300.ctrlDeviceIO(IGW300API.OUTPUT.BELL_CONT, true);
+                                }
+
+                                if (!Version.getGatewayUsage()) {
+                                    mDingDongHandler.sendEmptyMessage(0); // 띵똥
+                                }
+
+                                Log.w(TAG, "[WallPadInterface.BTN_DOOR] New Call App!!!");
+                                runCallMainActivity(CALLOWNER.NONE, CALLEVENTTYPE.RECEIVE_CALL, CALLTYPE.FRONT, AlarmStatus);
+                            } catch (RuntimeException re) {
+                                LogUtil.errorLogInfo("", TAG, re);
+                            }
+                            catch (Exception e) {
+                                Log.e(TAG, "[Exception] onReceive().BTN_DOOR");
+                                //e.printStackTrace();
+                                LogUtil.errorLogInfo("", TAG, e);
+                            }
+                        }
+                        else if(Common.bWallPadRecoder && bWallPadCallLive)
+                        {
+                            //여기서 거동 수상자 확인이 필요함
                             //녹화 여부 확인 후, 거동 수상자 녹화 중지 BR을 전송
                             // 거동수상자 녹화 중 현관 띵똥 눌리는 경우 BR 전송 (녹화 여부 판별 위해)
                             Log.d(TAG, "[WallPadInterface.BTN_DOOR] Now Stranger Recording!!! bRecordStatus [" + Common.bWallPadRecoder + "]");
@@ -2352,9 +2388,7 @@ public class iMapServer extends Service {
                             ComponentName mComponentName = new ComponentName("kr.co.icontrols.wallpadcall", "kr.co.icontrols.wallpadcall.MainActivity");
                             iIntent.setComponent(mComponentName);
                             getApplicationContext().sendBroadcast(iIntent);
-                        }
 
-                        if (!bWallPadCallLive && !bBlockFrontCall) {
                             bBlockFrontCall = true;
                             handlerCallCtrl.removeMessages(CALLCTRLHANDLERMSG.RELEASE_BLOCK_FRONTCALL);
                             handlerCallCtrl.sendEmptyMessageDelayed(CALLCTRLHANDLERMSG.RELEASE_BLOCK_FRONTCALL, 3000);