Ver Fonte

[WallPadMain]
1. 거동 수상자 녹화 도중, 현관 호출 시 녹화 중지 BR 전송
- iMapServer에서 전송하는 BR 참조
- 추후, 현관이상없는 경우 경비실/로비/이웃통화에서도 해당 기능 추가예정

jglee há 2 anos atrás
pai
commit
49eda177d6

+ 2 - 0
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/MainActivity.java

@@ -2721,6 +2721,8 @@ public class MainActivity extends WpadActivity {
 
                         case Common.BR_MAIN_NOTI.ACCEPT_RECORDING:
                             int nEmerState = intent.getIntExtra("EMERGENCY_STATE", -1);
+                            //여기서 거동 수상자 녹화 시작 여부 확인
+                            Common.bWallPadRecoder = true;
                             m_CallSubMenuScreen.callStartCallAPK(ID.LINKEDSCREEN.SubCall.Door_Record, nEmerState);
                             break;
 

+ 2 - 0
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/declare/Common.java

@@ -26,6 +26,8 @@ public final class Common {
 
     public static boolean bWallPadCallLive = false;
 
+    public static boolean bWallPadRecoder = false;
+
     public static int CurrentBoardType = BOARD_TYPE.V40_IGW300_NOUGAT;
 
     /**

+ 14 - 0
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/util/iMapServer.java

@@ -2341,7 +2341,19 @@ 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 (!bWallPadCallLive && !bBlockFrontCall) {
+                            //녹화 여부 확인 후, 거동 수상자 녹화 중지 BR을 전송
+                            if (Common.bWallPadRecoder) {
+                                // 거동수상자 녹화 중 현관 띵똥 눌리는 경우 BR 전송 (녹화 여부 판별 위해)
+                                Log.d(TAG, "[WallPadInterface.BTN_DOOR] Now Stranger Recording!!! bRecordStatus [" + Common.bWallPadRecoder + "]");
+                                Intent iIntent = new Intent();
+                                iIntent.setAction("kr.co.icontrols.wallpad.BR_RECORDSTOP");
+                                ComponentName mComponentName = new ComponentName("kr.co.icontrols.wallpadcall", "kr.co.icontrols.wallpadcall.MainActivity");
+                                iIntent.setComponent(mComponentName);
+                                getApplicationContext().sendBroadcast(iIntent);
+                            }
                             bBlockFrontCall = true;
                             handlerCallCtrl.removeMessages(CALLCTRLHANDLERMSG.RELEASE_BLOCK_FRONTCALL);
                             handlerCallCtrl.sendEmptyMessageDelayed(CALLCTRLHANDLERMSG.RELEASE_BLOCK_FRONTCALL, 3000);
@@ -15388,6 +15400,7 @@ public class iMapServer extends Service {
     int MAX_WALLPADCALL_LIVE_CNT = 2;
     int nWallPadCallACKCnt = MAX_WALLPADCALL_LIVE_CNT;   // MAX_WALLPADCALL_LIVE_CNT회 이상 응답이 없으면 WallPadCall이 종료된것으로 판단한다.
     public static boolean bWallPadCallLive = false;   // WallPadCall의 Live 상태를 나타낸다.
+    public static boolean bWallPadRecoder = false;   // WallPadCall의 Live 상태를 나타낸다.
     int nWallPadCallPID = 0;   // WallPadCall을 강제 종료하기 위한 PID (WallPadCall로부터 BR로 수신한다.)
     Handler handlerCheckWallPadCallLive =  new Handler() {
         public void handleMessage(Message msg) {
@@ -15409,6 +15422,7 @@ public class iMapServer extends Service {
             }
             else {
                 bWallPadCallLive = false;
+                bWallPadRecoder  = false;
                 Common.bWallPadCallLive = bWallPadCallLive;
             }