4
0

18 Incheckningar 9069674b72 ... f7917e6c89

Upphovsman SHA1 Meddelande Datum
  Jeffrey Nam f7917e6c89 [모든앱] 3 år sedan
  Jeffrey Nam e32ccb18c8 [WallPadSecurity] 3 år sedan
  Jeffrey Nam 38fcaafdef [WallPadOutmodeRun] 3 år sedan
  Jeffrey Nam 0e2308ca79 [WallPadMain] 3 år sedan
  Jeffrey Nam 5e9cb1e463 [WallPadKeyBoard] 3 år sedan
  Jeffrey Nam 31e1f599cd [WallPadHomeCtrl] 3 år sedan
  Jeffrey Nam 9c6f35b21b [WallPadGlobalScreen] 3 år sedan
  Jeffrey Nam 21211fad05 [WallPadGlobalButton] 3 år sedan
  Jeffrey Nam e310d762d8 [WallPadEnergyCtrl] 3 år sedan
  Jeffrey Nam f89e695def [WallPadEmergency] 3 år sedan
  Jeffrey Nam f6f54a3130 [WallPadDevService] 3 år sedan
  Jeffrey Nam aad77fa85e [WallPadConfig] 3 år sedan
  Jeffrey Nam 192e9af30a [WallPadCall] 3 år sedan
  Jeffrey Nam 7ebc6de2c8 [WallPadAddService] 3 år sedan
  Jeffrey Nam f2ce0f2531 [ManagerSetting] 3 år sedan
  Jeffrey Nam d2598c3572 [LogOutputService] 3 år sedan
  Jeffrey Nam 1e1922157b [AutoPicture] 3 år sedan
  Jeffrey Nam 18c20e637a [WallPadAPI] 3 år sedan
63 ändrade filer med 757 tillägg och 998 borttagningar
  1. BIN
      10_Release/AutoPicture.apk
  2. BIN
      10_Release/LogOutputService.apk
  3. BIN
      10_Release/ManagerSetting.apk
  4. BIN
      10_Release/WallPadAddService.apk
  5. BIN
      10_Release/WallPadCall.apk
  6. BIN
      10_Release/WallPadConfig.apk
  7. BIN
      10_Release/WallPadDevService.apk
  8. BIN
      10_Release/WallPadEmergency.apk
  9. BIN
      10_Release/WallPadEnergyCtrl.apk
  10. BIN
      10_Release/WallPadGlobalButton.apk
  11. BIN
      10_Release/WallPadGlobalScreen.apk
  12. BIN
      10_Release/WallPadHomeCtrl.apk
  13. BIN
      10_Release/WallPadKeyBoard.apk
  14. BIN
      10_Release/WallPadMain.apk
  15. BIN
      10_Release/WallPadOutModeRun.apk
  16. BIN
      10_Release/WallPadSecurity.apk
  17. BIN
      AutoPicture/libs/WallPadAPI.jar
  18. 1 1
      AutoPicture/src/main/AndroidManifest.xml
  19. BIN
      LogOutputService/libs/WallPadAPI.jar
  20. BIN
      LogOutputService/libs/WallPadAPIforSVC.jar
  21. 1 1
      LogOutputService/src/main/AndroidManifest.xml
  22. BIN
      ManagerSetting/libs/WallPadAPI.jar
  23. 1 1
      ManagerSetting/src/main/AndroidManifest.xml
  24. BIN
      WallPadAPI/jar/WallPadAPI.jar
  25. BIN
      WallPadAPI/jar/WallPadAPIforSVC.jar
  26. 1 2
      WallPadAPI/src/main/java/com/artncore/commons/define.java
  27. 53 56
      WallPadAPI/src/main/java/kr/co/icontrols/homeautomation/HomeAutomation_Call.java
  28. 6 3
      WallPadAPI/src/main/java/kr/co/icontrols/homeautomation/HomeAutomation_Call_Status.java
  29. 2 2
      WallPadAPI/src/main/java/kr/co/icontrols/homeautomation/HomeAutomation_Emergency.java
  30. 4 4
      WallPadAPI/src/main/java/kr/co/icontrols/homeautomation/HomeAutomation_Etc.java
  31. BIN
      WallPadAddService/libs/WallPadAPI.jar
  32. 1 1
      WallPadAddService/src/main/AndroidManifest.xml
  33. BIN
      WallPadCall/libs/WallPadAPI.jar
  34. 1 1
      WallPadCall/src/main/AndroidManifest.xml
  35. 6 6
      WallPadCall/src/main/java/kr/co/icontrols/callengine/engine/CallController.java
  36. 30 18
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/MainActivity.java
  37. 101 418
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkGuard.java
  38. 5 6
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkLobby.java
  39. 87 106
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkResidence.java
  40. BIN
      WallPadConfig/libs/WallPadAPI.jar
  41. 1 1
      WallPadConfig/src/main/AndroidManifest.xml
  42. BIN
      WallPadDevService/libs/WallPadAPIforSVC.jar
  43. 1 1
      WallPadDevService/src/main/AndroidManifest.xml
  44. 1 9
      WallPadDevService/src/main/java/com/artncore/wallpaddevservice/ServiceMain.java
  45. 427 341
      WallPadDevService/src/main/java/com/artncore/wallpaddevservice/driver/HomeAutomation_New_Controller.java
  46. BIN
      WallPadEmergency/libs/WallPadAPI.jar
  47. 1 1
      WallPadEmergency/src/main/AndroidManifest.xml
  48. BIN
      WallPadEnergyCtrl/libs/WallPadAPI.jar
  49. 1 1
      WallPadEnergyCtrl/src/main/AndroidManifest.xml
  50. 1 1
      WallPadGlobalButton/src/main/AndroidManifest.xml
  51. BIN
      WallPadGlobalScreen/libs/WallPadAPI.jar
  52. 1 1
      WallPadGlobalScreen/src/main/AndroidManifest.xml
  53. BIN
      WallPadHomeCtrl/libs/WallPadAPI.jar
  54. 1 1
      WallPadHomeCtrl/src/main/AndroidManifest.xml
  55. 1 1
      WallPadKeyBoard/src/main/AndroidManifest.xml
  56. BIN
      WallPadMain/libs/WallPadAPI.jar
  57. 1 1
      WallPadMain/src/main/AndroidManifest.xml
  58. 10 7
      WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/MainActivity.java
  59. 8 4
      WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/util/iMapServer.java
  60. BIN
      WallPadOutmodeRun/libs/WallPadAPI.jar
  61. 1 1
      WallPadOutmodeRun/src/main/AndroidManifest.xml
  62. BIN
      WallPadSecurity/libs/WallPadAPI.jar
  63. 1 1
      WallPadSecurity/src/main/AndroidManifest.xml

BIN
10_Release/AutoPicture.apk


BIN
10_Release/LogOutputService.apk


BIN
10_Release/ManagerSetting.apk


BIN
10_Release/WallPadAddService.apk


BIN
10_Release/WallPadCall.apk


BIN
10_Release/WallPadConfig.apk


BIN
10_Release/WallPadDevService.apk


BIN
10_Release/WallPadEmergency.apk


BIN
10_Release/WallPadEnergyCtrl.apk


BIN
10_Release/WallPadGlobalButton.apk


BIN
10_Release/WallPadGlobalScreen.apk


BIN
10_Release/WallPadHomeCtrl.apk


BIN
10_Release/WallPadKeyBoard.apk


BIN
10_Release/WallPadMain.apk


BIN
10_Release/WallPadOutModeRun.apk


BIN
10_Release/WallPadSecurity.apk


BIN
AutoPicture/libs/WallPadAPI.jar


+ 1 - 1
AutoPicture/src/main/AndroidManifest.xml

@@ -2,7 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.autopicture"
     android:versionCode="17"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 

BIN
LogOutputService/libs/WallPadAPI.jar


BIN
LogOutputService/libs/WallPadAPIforSVC.jar


+ 1 - 1
LogOutputService/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.artncore.apps.ic_wallpad.service.log"
     android:versionCode="24"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

BIN
ManagerSetting/libs/WallPadAPI.jar


+ 1 - 1
ManagerSetting/src/main/AndroidManifest.xml

@@ -2,7 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.artncore.managersetting"
     android:versionCode="23"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <uses-permission android:name="android.permission.CALL_PHONE" />
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>

BIN
WallPadAPI/jar/WallPadAPI.jar


BIN
WallPadAPI/jar/WallPadAPIforSVC.jar


+ 1 - 2
WallPadAPI/src/main/java/com/artncore/commons/define.java

@@ -4,7 +4,7 @@ import android.os.Environment;
 
 public class define {
 	/** WallPadAPI Version 을 정의합니다. */
-	public static final String WALLPADAPI_VERSION = "2022.01.04.01";
+	public static final String WALLPADAPI_VERSION = "2022.05.12.01";
 	///////////////////////////////////////////////////////////////////////
 	// WallPadDevService 의 각 드라이버와 통신을 위한 드라이버 이름을 정의합니다.
 	///////////////////////////////////////////////////////////////////////
@@ -80,7 +80,6 @@ public class define {
     public static final String NOTIFY_ACNAME__LIVING_LIGHT_MODE = "WALLPAD_NOTIFY__LIVING_LIGHT_MODE";		// 조그월패드 거실 조명 모드변경 알림
 	public static final String NOTIFY_ACNAME_LCD_BACKLIGHT_ON = "NOTIFY_ACNAME_LCD_BACKLIGHT_ON";   // LCD backlight on
 	public static final String NOTIFY_ACNAME_LCD_BACKLIGHT_OFF = "NOTIFY_ACNAME_LCD_BACKLIGHT_OFF";   // LCD backlight off
-	public static final String NOTIFY_CALLAPP_TOP  = "WALLPAD_NOTIFY_CALLAPP_TOP";
 
 	///////////////////////////////////////////////////////////////////////
 	// NOTIFY 알람 이벤트 종류를 정의합니다.

+ 53 - 56
WallPadAPI/src/main/java/kr/co/icontrols/homeautomation/HomeAutomation_Call.java

@@ -18,8 +18,8 @@ public class HomeAutomation_Call {
     /** BR Action Name <br>
      *  본 Action Name을 BroadcastReceiver에 getAction 후 문자열 비교 등록 후 일치 시 사용해야 한다.
      * **/
-    public static final String BR_ACTION_NAME = "HOME_AUTOMATION_CALL";
-    public static final String BR_ACTION_NAME_OPTION = "HOME_AUTOMATION_CALL_OPTION";
+    public static final String BR_HOME_AUTOMATION_CALL = "BR_HOME_AUTOMATION_CALL";
+    public static final String BR_HOME_AUTOMATION_CALL_OPTION = "BR_HOME_AUTOMATION_CALL_OPTION";
     
     /** BR Data Type **/
     public static final String BR_DEVICE    = "DEVICE";
@@ -96,22 +96,21 @@ public class HomeAutomation_Call {
      * @param intent -> 수신 받은 intent 원형
      * @param AppName -> 본 함수 사용하는 APP의 Name ("WallPadDevService or WallPadCall")
      * **/
-    int m_nCallType = 0;
     public Call_Info BR_Parsing(Intent intent, String AppName) {
-        Log.e(TAG,  "[BR_Parsing] AppName : " + AppName);
+        Log.i(TAG,  "[BR_Parsing] AppName : " + AppName);
         Call_Info call_info = null;
         
         // 1. 디바이스 정보 범위 체크
         int Device = intent.getIntExtra(BR_DEVICE, DEVICE_NONE);
         if ((Device < DEVICE_NONE) || (Device > DEVICE_NEIBOR)) {
-            Log.e(TAG,  "BR_Parsing - Device is error : " + Device);
+            Log.e(TAG,  "[BR_Parsing] Device is error : " + Device);
             return null;
         }
 
         // 2. 통화 정보 범위 체크
         int CallType = intent.getIntExtra(BR_TYPE_CALL, CALLTYPE_NONE);        
         if ((CallType < CALLTYPE_NONE) || (CALLTYPE_RECEIVE_DOOR_OPEN_ACK < CallType)) {
-            Log.e(TAG,  "BR_Parsing - CallType is error : " + CallType);
+            Log.e(TAG,  "[BR_Parsing] CallType is error : " + CallType);
             return null;
         }
         
@@ -127,7 +126,7 @@ public class HomeAutomation_Call {
                 break;
 
             default:
-                Log.e(TAG,  "BR_Parsing - " + APP_NAME_WALLPADDEVSERVICE + " - CallType is error : " + CallType);
+                Log.e(TAG,  "[BR_Parsing] " + APP_NAME_WALLPADDEVSERVICE + " - CallType is error : " + CallType);
                 return null;
             }
         }
@@ -144,7 +143,7 @@ public class HomeAutomation_Call {
                 break;
 
             default:
-                Log.e(TAG,  "BR_Parsing - " + APP_NAME_WALLPADCALL + " - CallType is error : " + CallType);
+                Log.e(TAG,  "[BR_Parsing] " + APP_NAME_WALLPADCALL + " - CallType is error : " + CallType);
                 return null;
             }
         }
@@ -152,13 +151,13 @@ public class HomeAutomation_Call {
         // 3. 동 정보 범위 체크
         int Dong = intent.getIntExtra(BR_ID_DONG, -1);
         if ((Dong < 0) || (Dong > 9999)) {
-            Log.e(TAG,  "BR_Parsing - Dong is error : " + Dong);
+            Log.e(TAG,  "[BR_Parsing] Dong is error : " + Dong);
             return null;
         }
 
         if (Device == DEVICE_GUARD) {
             if (Dong != 0) {
-                Log.e(TAG,  "BR_Parsing - Dong is error : " + Dong + "(DEVICE_GUARD)");
+                Log.e(TAG,  "[BR_Parsing] Dong is error : " + Dong + "(DEVICE_GUARD)");
                 return null;
             }
         }
@@ -166,7 +165,7 @@ public class HomeAutomation_Call {
         // 4. 호 정보 범위 체크        
         int Ho = intent.getIntExtra(BR_ID_HO, -1);
         if ((Ho < 0) || (Ho > 9999)) {
-            Log.e(TAG,  "BR_Parsing - Ho is error : " + Ho);
+            Log.e(TAG,  "[BR_Parsing] Ho is error : " + Ho);
             return null;
         }
         
@@ -177,10 +176,10 @@ public class HomeAutomation_Call {
         call_info.ID_Dong = Dong;
         call_info.ID_Ho = Ho;
                 
-        Log.d(TAG, "BR_Parsing - call_info.Type_Device : " + call_info.Type_Device);
-        Log.d(TAG, "BR_Parsing - call_info.Type_Call : " + call_info.Type_Call);
-        Log.d(TAG, "BR_Parsing - call_info.ID_Dong : " + call_info.ID_Dong);
-        Log.d(TAG, "BR_Parsing - call_info.ID_Ho : " + call_info.ID_Ho);
+        Log.d(TAG, "[BR_Parsing] call_info.Type_Device : " + call_info.Type_Device);
+        Log.d(TAG, "[BR_Parsing] call_info.Type_Call : " + call_info.Type_Call);
+        Log.d(TAG, "[BR_Parsing] call_info.ID_Dong : " + call_info.ID_Dong);
+        Log.d(TAG, "[BR_Parsing] call_info.ID_Ho : " + call_info.ID_Ho);
 
         return call_info;
     }
@@ -191,98 +190,96 @@ public class HomeAutomation_Call {
      * 
      * @return boolean -> true(정상), false(송신 실패)
      * 
-     * @param DeviceType -> 디바이스 종류
-     * @param CallType -> 통화 종류
-     * @param ID_Dong -> 동 ID (경비실인 경우는 무시)
-     * @param ID_Ho -> 호 ID (로비, 경비인 경우는 ID로 사용됨)
+     * @param nDeviceType -> 디바이스 종류
+     * @param nCallType -> 통화 종류
+     * @param nID_Dong -> 동 ID (경비실인 경우는 무시)
+     * @param nID_Ho -> 호 ID (로비, 경비인 경우는 ID로 사용됨)
      * **/
-    public boolean BR_Send(int DeviceType, int CallType, int ID_Dong, int ID_Ho) {
+    public boolean sendHomeAutoCallBR(int nDeviceType, int nCallType, int nID_Dong, int nID_Ho) {
         /** param check **/
 /*
-        if(CallType == CALLTYPE_SEND_CALL_END || CallType == CALLTYPE_SEND_CALL_ACK_FAIL ||
-                CallType == CALLTYPE_RECEIVE_CALL_END || CallType == CALLTYPE_RECEIVE_CALL_ACK_FAIL ||
-                CallType == CALLTYPE_SEND_DOOR_OPEN || CallType == CALLTYPE_RECEIVE_DOOR_OPEN_ACK)
+        if(nCallType == CALLTYPE_SEND_CALL_END || nCallType == CALLTYPE_SEND_CALL_ACK_FAIL ||
+                nCallType == CALLTYPE_RECEIVE_CALL_END || nCallType == CALLTYPE_RECEIVE_CALL_ACK_FAIL ||
+                nCallType == CALLTYPE_SEND_DOOR_OPEN || nCallType == CALLTYPE_RECEIVE_DOOR_OPEN_ACK)
         {
             m_nCallType = 0;
         }
         else
         {
-            m_nCallType = CallType;
+            m_nCallType = nCallType;
         }
 */
         // 1. 디바이스 정보 범위 체크
-        if ((DeviceType < DEVICE_NONE) || (DeviceType > DEVICE_NEIBOR)) {
-            Log.e(TAG,  "BR_Send - DeviceType is error : " + DeviceType);
+        if ((nDeviceType < DEVICE_NONE) || (nDeviceType > DEVICE_NEIBOR)) {
+            Log.e(TAG,  "[sendHomeAutoCallBR] nDeviceType is error : " + nDeviceType);
             //m_nCallType = 0;
             return false;
         }
         
         // 2. 통화 정보 범위 체크
-        if ((CallType < CALLTYPE_NONE) || (CallType > CALLTYPE_RECEIVE_DOOR_OPEN_ACK)) {
-            Log.e(TAG,  "BR_Send - CallType is error : " + CallType);
+        if ((nCallType < CALLTYPE_NONE) || (nCallType > CALLTYPE_RECEIVE_DOOR_OPEN_ACK)) {
+            Log.e(TAG,  "[sendHomeAutoCallBR] nCallType is error : " + nCallType);
             //m_nCallType = 0;
             return false;
         }
         
         // 3. 동 정보 범위 체크
-        if ((ID_Dong < 0) || (ID_Dong > 9999)) {
-            Log.e(TAG,  "BR_Send - ID_Dong is error : " + ID_Dong);
+        if ((nID_Dong < 0) || (nID_Dong > 9999)) {
+            Log.e(TAG,  "[sendHomeAutoCallBR] nID_Dong is error : " + nID_Dong);
             //m_nCallType = 0;
             return false;
         }
 
-        if (DeviceType == DEVICE_GUARD) {
-            if (ID_Dong != 0) {
-                Log.e(TAG,  "BR_Send - ID_Dong is error : " + ID_Dong + "(DEVICE_GUARD)");
+        if (nDeviceType == DEVICE_GUARD) {
+            if (nID_Dong != 0) {
+                Log.e(TAG,  "[sendHomeAutoCallBR] nID_Dong is error : " + nID_Dong + "(DEVICE_GUARD)");
                 //m_nCallType = 0;
                 return false;
             }
         }
         
         // 4. 호 정보 범위 체크   
-        if ((ID_Ho < 0) || (ID_Ho > 9999)) {
-            Log.e(TAG,  "BR_Send - ID_Dong is error : " + ID_Ho);
+        if ((nID_Ho < 0) || (nID_Ho > 9999)) {
+            Log.e(TAG,  "[sendHomeAutoCallBR] nID_Dong is error : " + nID_Ho);
             //m_nCallType = 0;
             return false;
         }
 
-        Log.d(TAG, "BR_Send - DeviceType : " + DeviceType);
-        Log.d(TAG, "BR_Send - CallType : " + CallType);
-        Log.d(TAG, "BR_Send - ID_Dong : " + ID_Dong);
-        Log.d(TAG, "BR_Send - ID_Ho : " + ID_Ho);
+        Log.d(TAG, "[sendHomeAutoCallBR] nDeviceType [" + nDeviceType + "], nCallType [" + nCallType + "], nID_Dong [" + nID_Dong + "], nID_Ho [" + nID_Ho + "]");
         
         //5. Broadcast 전송
-        sendCallBR(DeviceType, CallType, ID_Dong, ID_Ho);
+        sendCallBR(nDeviceType, nCallType, nID_Dong, nID_Ho);
 
 
 /*
-        if(CallType == CALLTYPE_SEND_CALL_END || CallType == CALLTYPE_SEND_CALL_ACK_FAIL ||
-                CallType == CALLTYPE_RECEIVE_CALL_END || CallType == CALLTYPE_RECEIVE_CALL_ACK_FAIL ||
-                CallType == CALLTYPE_SEND_DOOR_OPEN || CallType == CALLTYPE_RECEIVE_DOOR_OPEN_ACK)
+        if(nCallType == CALLTYPE_SEND_CALL_END || nCallType == CALLTYPE_SEND_CALL_ACK_FAIL ||
+                nCallType == CALLTYPE_RECEIVE_CALL_END || nCallType == CALLTYPE_RECEIVE_CALL_ACK_FAIL ||
+                nCallType == CALLTYPE_SEND_DOOR_OPEN || nCallType == CALLTYPE_RECEIVE_DOOR_OPEN_ACK)
         {
             m_nCallType = 0;
         }
         else
         {
-            m_nCallType = CallType;
+            m_nCallType = nCallType;
         }
 */
         //Log.d(TAG, "BR_Send - CallType1 : " + m_nCallType);
 
 //        Intent mIntent = new Intent();
 //        mIntent.setAction(BR_ACTION_NAME);
-//        mIntent.putExtra(BR_DEVICE, DeviceType);    
-//        mIntent.putExtra(BR_TYPE_CALL, ID_Dong);      
+//        mIntent.putExtra(BR_DEVICE, nDeviceType);
+//        mIntent.putExtra(BR_TYPE_CALL, nID_Dong);
 //        mIntent.putExtra(BR_ID_DONG, nDong);  
-//        mIntent.putExtra(BR_ID_HO, ID_Ho);  
+//        mIntent.putExtra(BR_ID_HO, nID_Ho);
 //        context.sendBroadcast(mIntent);
         
         return true;
     }
 
-    public void setCallStaus(int nStatus) {
-        m_nCallType = nStatus;
-        Log.d(TAG, "BR_Send - CallType1 : " + m_nCallType);
+    boolean bWallPadCallLive = false;
+    public void setWallPadCallLive(boolean bCallWAppLive) {
+        bWallPadCallLive = bCallWAppLive;
+        Log.d(TAG, "[setWallPadCallLive] bWallPadCallLive [" + bWallPadCallLive + "]");
     }
     
     public void sendCallBR(int nCallType, int nEventType, int nDong, int nHo) {
@@ -296,7 +293,7 @@ public class HomeAutomation_Call {
             }
             else {
                 Intent mIntent = new Intent();
-                mIntent.setAction(BR_ACTION_NAME);
+                mIntent.setAction(BR_HOME_AUTOMATION_CALL);
                 mIntent.putExtra(BR_DEVICE, nCallType);    
                 mIntent.putExtra(BR_TYPE_CALL, nEventType);      
                 mIntent.putExtra(BR_ID_DONG, nDong);  
@@ -313,7 +310,7 @@ public class HomeAutomation_Call {
         try {
             Log.i(TAG, "[sendBlockCallFalg] bBlock [" + bBlock + "], nAutoReleaseSec [" + nAutoReleaseSec + "]");
             Intent mIntent = new Intent();
-            mIntent.setAction(BR_ACTION_NAME_OPTION);
+            mIntent.setAction(BR_HOME_AUTOMATION_CALL_OPTION);
             mIntent.putExtra(BR_BLOCK_NEWCALL, bBlock);
             mIntent.putExtra(BR_BLOCK_NEWCALL_RELEASESEC, nAutoReleaseSec);
             context.sendBroadcast(mIntent);
@@ -328,7 +325,7 @@ public class HomeAutomation_Call {
 
     public void receiveNewCall(int nCallType, int nEventType, int nDong, int nHo) {
         try {
-            Log.i(TAG, "[receiveNewCall] nCallType [" + nCallType + "], nEventType [" + nEventType + "], nDong [" + nDong + "], nHo [" + nHo + "]"  + "], m_nCallType [" + m_nCallType + "]");
+            Log.i(TAG, "[receiveNewCall] nCallType [" + nCallType + "], nEventType [" + nEventType + "], nDong [" + nDong + "], nHo [" + nHo + "]");
             CALLEVENTTYPE eEventType = CALLEVENTTYPE.RECEIVE_CALL;
             CALLTYPE eCallType = CALLTYPE.NONE;
             if (nCallType == DEVICE_LOBBY) eCallType = CALLTYPE.LOBBY;
@@ -340,7 +337,7 @@ public class HomeAutomation_Call {
             }
             
             //if (isCallAppRunning()) {
-            if (m_nCallType == 0) {
+            if (!bWallPadCallLive) {
                 // 통화어플을 실행시킨다.
                 //m_nCallType = 1;
                 Log.w(TAG, "[runCallMainActivity] ########## START ##########");
@@ -371,7 +368,7 @@ public class HomeAutomation_Call {
                 Log.w(TAG, "[runCallMainActivity] wallpadcall is already running!!");
                 Log.e(TAG, "[runCallMainActivity] ############################## RUNNING ##############################");
                 Intent mIntent = new Intent();
-                mIntent.setAction(BR_ACTION_NAME);
+                mIntent.setAction(BR_HOME_AUTOMATION_CALL);
                 mIntent.putExtra(BR_DEVICE, nCallType);    
                 mIntent.putExtra(BR_TYPE_CALL, nEventType);      
                 mIntent.putExtra(BR_ID_DONG, nDong);  
@@ -406,7 +403,7 @@ public class HomeAutomation_Call {
             Log.i(TAG, "[sendDirectACKBR] nCallType [" + nCallType + "], nEventType [" + nEventType + "], nDong [" + nDong + "], nHo [" + nHo + "]");
 //            Thread.sleep(500);
             Intent mIntent = new Intent();
-            mIntent.setAction(BR_ACTION_NAME);
+            mIntent.setAction(BR_HOME_AUTOMATION_CALL);
             mIntent.putExtra(BR_DEVICE, nCallType);    
             mIntent.putExtra(BR_TYPE_CALL, nEventType);      
             mIntent.putExtra(BR_ID_DONG, nDong);  

+ 6 - 3
WallPadAPI/src/main/java/kr/co/icontrols/homeautomation/HomeAutomation_Call_Status.java

@@ -12,11 +12,14 @@ public class HomeAutomation_Call_Status
     /** BR Action Name <br>
      *  본 Action Name을 BroadcastReceiver에 getAction 후 문자열 비교 등록 후 일치 시 사용해야 한다.
      * **/
-    public static final String BR_ACTION_NAME = "HOME_AUTOMATION_CALL_STATUS";
+    public static final String BR_HOME_AUTOMATION_CALL_STATUS = "BR_HOME_AUTOMATION_CALL_STATUS";
     
     /** BR Data Type **/
-    public static final String BR_DEVICE    = "DEVICE";
+    public static final String BR_DEVICE = "DEVICE";
     public static final String BR_STATUS_CALL = "STATUS_CALL";
+
+    /** WallPadCall Live Status **/
+    public static final String BR_ACK_WALLPADCALL_LIVE = "kr.co.icontrols.wallpad.BR_ACK_WALLPADCALL_LIVE";
     
     /** Device Define **/
     public static final int DEVICE_GUARD  = 1;
@@ -127,7 +130,7 @@ public class HomeAutomation_Call_Status
         
         //5. Broadcast 전송        
         Intent mIntent = new Intent();
-        mIntent.setAction(BR_ACTION_NAME);
+        mIntent.setAction(BR_HOME_AUTOMATION_CALL_STATUS);
         mIntent.putExtra(BR_DEVICE, DeviceType);    
         mIntent.putExtra(BR_STATUS_CALL, CallType);     
         context.sendBroadcast(mIntent);

+ 2 - 2
WallPadAPI/src/main/java/kr/co/icontrols/homeautomation/HomeAutomation_Emergency.java

@@ -12,7 +12,7 @@ public class HomeAutomation_Emergency
     /** BR Action Name <br>
      *  본 Action Name을 BroadcastReceiver에 getAction 후 문자열 비교 등록 후 일치 시 사용해야 한다.
      * **/
-    public static final String BR_ACTION_NAME = "HOME_AUTOMATION_EMERGENCY";
+    public static final String BR_HOME_AUTOMATION_EMERGENCY = "BR_HOME_AUTOMATION_EMERGENCY";
 
     public static final String BR_KIND = "KIND";
     public static final String BR_TYPE = "TYPE";
@@ -127,7 +127,7 @@ public class HomeAutomation_Emergency
         
         //3. Broadcast 전송
         Intent iIntent = new Intent();
-        iIntent.setAction(BR_ACTION_NAME);
+        iIntent.setAction(BR_HOME_AUTOMATION_EMERGENCY);
         iIntent.putExtra(BR_KIND, AlarmKind);    
         iIntent.putExtra(BR_TYPE, AlarmType);    
         context.sendBroadcast(iIntent);

+ 4 - 4
WallPadAPI/src/main/java/kr/co/icontrols/homeautomation/HomeAutomation_Etc.java

@@ -12,7 +12,7 @@ public class HomeAutomation_Etc
     /** BR Action Name <br>
      *  본 Action Name을 BroadcastReceiver에 getAction 후 문자열 비교 등록 후 일치 시 사용해야 한다.
      * **/
-    public static final String BR_ACTION_NAME = "HOME_AUTOMATION_ETC";
+    public static final String BR_HOME_AUTOMATION_ETC = "BR_HOME_AUTOMATION_ETC";
 
     public static final String BR_TYPE = "TYPE";
     public static final String BR_TYPE_PASSWORD = "TYPE_PASSWORD";
@@ -178,7 +178,7 @@ public class HomeAutomation_Etc
                     
             //2. Broadcast 전송
             Intent iIntent = new Intent();
-            iIntent.setAction(BR_ACTION_NAME);
+            iIntent.setAction(BR_HOME_AUTOMATION_ETC);
             iIntent.putExtra(BR_TYPE, TYPE_PASSWORD);
             iIntent.putExtra(BR_TYPE_PASSWORD, Password);   
             context.sendBroadcast(iIntent);
@@ -217,7 +217,7 @@ public class HomeAutomation_Etc
                     
             //2. Broadcast 전송
             Intent iIntent = new Intent();
-            iIntent.setAction(BR_ACTION_NAME);
+            iIntent.setAction(BR_HOME_AUTOMATION_ETC);
             iIntent.putExtra(BR_TYPE, TYPE_REALMETER_REQUEST);
             iIntent.putExtra(BR_TYPE_REALMETER_YEAR, Year);
             iIntent.putExtra(BR_TYPE_REALMETER_MONTH, Month);
@@ -260,7 +260,7 @@ public class HomeAutomation_Etc
                     
             //2. Broadcast 전송
             Intent iIntent = new Intent();
-            iIntent.setAction(BR_ACTION_NAME);
+            iIntent.setAction(BR_HOME_AUTOMATION_ETC);
             iIntent.putExtra(BR_TYPE, TYPE_REALMETER_REPLY);
             iIntent.putExtra(BR_TYPE_REALMETER_ELECT,    DoubleArray[0]);
             iIntent.putExtra(BR_TYPE_REALMETER_GAS,      DoubleArray[1]);

BIN
WallPadAddService/libs/WallPadAPI.jar


+ 1 - 1
WallPadAddService/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadaddservice"
     android:versionCode="17"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

BIN
WallPadCall/libs/WallPadAPI.jar


+ 1 - 1
WallPadCall/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadcall"
     android:versionCode="17"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <!--android:sharedUserId="android.uid.system"-->
     <!--<uses-sdk-->

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

@@ -3015,7 +3015,7 @@ public class CallController extends CallManager implements SIPEventListener {
     public void sendACKRequestCall(CALLTYPE eDeviceType, int nDong, int nHo) {
         try {
             LOG_INFO("[sendACKRequestCall] eDeviceType [" + eDeviceType + "], nDong [" + nDong + "], nHo [" + nHo + "]");
-            mAnalogCallAPI.BR_Send(getAnalogIntCallType(eDeviceType), HomeAutomation_Call.CALLTYPE_SEND_CALL_ACK, nDong, nHo);
+            mAnalogCallAPI.sendHomeAutoCallBR(getAnalogIntCallType(eDeviceType), HomeAutomation_Call.CALLTYPE_SEND_CALL_ACK, nDong, nHo);
         } catch (Exception e) {
             Log.e(TAG, "[Exception] sendACKRequestCall(CALLTYPE eDeviceType, int nDong, int nHo)");
             e.printStackTrace();
@@ -3025,7 +3025,7 @@ public class CallController extends CallManager implements SIPEventListener {
     public void sendNACKRequestCall(CALLTYPE eDeviceType, int nDong, int nHo) {
         try {
             LOG_INFO("[sendNACKRequestCall] eDeviceType [" + eDeviceType + "], nDong [" + nDong + "], nHo [" + nHo + "]");
-            mAnalogCallAPI.BR_Send(getAnalogIntCallType(eDeviceType), HomeAutomation_Call.CALLTYPE_SEND_CALL_ACK_FAIL, nDong, nHo);
+            mAnalogCallAPI.sendHomeAutoCallBR(getAnalogIntCallType(eDeviceType), HomeAutomation_Call.CALLTYPE_SEND_CALL_ACK_FAIL, nDong, nHo);
         } catch (Exception e) {
             Log.e(TAG, "[Exception] sendNACKRequestCall(CALLTYPE eDeviceType, int nDong, int nHo)");
             e.printStackTrace();
@@ -3035,7 +3035,7 @@ public class CallController extends CallManager implements SIPEventListener {
     public void sendCallStart(CALLTYPE eDeviceType, int nDong, int nHo) {
         try {
             LOG_INFO("[sendCallStart] eDeviceType [" + eDeviceType + "], nDong [" + nDong + "], nHo [" + nHo + "]");
-            mAnalogCallAPI.BR_Send(getAnalogIntCallType(eDeviceType), HomeAutomation_Call.CALLTYPE_SEND_CALL_START, nDong, nHo);
+            mAnalogCallAPI.sendHomeAutoCallBR(getAnalogIntCallType(eDeviceType), HomeAutomation_Call.CALLTYPE_SEND_CALL_START, nDong, nHo);
         } catch (Exception e) {
             Log.e(TAG, "[Exception] sendCallStart(CALLTYPE eDeviceType, int nDong, int nHo)");
             e.printStackTrace();
@@ -3045,7 +3045,7 @@ public class CallController extends CallManager implements SIPEventListener {
     public void sendCallEnd(CALLTYPE eDeviceType, int nDong, int nHo) {
         try {
             LOG_INFO("[sendCallEnd] eDeviceType [" + eDeviceType + "], nDong [" + nDong + "], nHo [" + nHo + "]");
-            mAnalogCallAPI.BR_Send(getAnalogIntCallType(eDeviceType), HomeAutomation_Call.CALLTYPE_SEND_CALL_END, nDong, nHo);
+            mAnalogCallAPI.sendHomeAutoCallBR(getAnalogIntCallType(eDeviceType), HomeAutomation_Call.CALLTYPE_SEND_CALL_END, nDong, nHo);
         } catch (Exception e) {
             Log.e(TAG, "[Exception] sendCallEnd(CALLTYPE eDeviceType, int nDong, int nHo)");
             e.printStackTrace();
@@ -3055,7 +3055,7 @@ public class CallController extends CallManager implements SIPEventListener {
     public void sendRequestCall(CALLTYPE eDeviceType, int nDong, int nHo) {
         try {
             LOG_INFO("[sendRequestCall] eDeviceType [" + eDeviceType + "], nDong [" + nDong + "], nHo [" + nHo + "]");
-            mAnalogCallAPI.BR_Send(getAnalogIntCallType(eDeviceType), HomeAutomation_Call.CALLTYPE_SEND_CALL_REQUEST, nDong, nHo);
+            mAnalogCallAPI.sendHomeAutoCallBR(getAnalogIntCallType(eDeviceType), HomeAutomation_Call.CALLTYPE_SEND_CALL_REQUEST, nDong, nHo);
         } catch (Exception e) {
             Log.e(TAG, "[Exception] sendRequestCall(CALLTYPE eDeviceType, int nDong, int nHo)");
             e.printStackTrace();
@@ -3065,7 +3065,7 @@ public class CallController extends CallManager implements SIPEventListener {
     public void sendDoorOpen(CALLTYPE eDeviceType, int nDong, int nHo) {
         try {
             LOG_INFO("[sendDoorOpen] eDeviceType [" + eDeviceType + "], nDong [" + nDong + "], nHo [" + nHo + "]");
-            mAnalogCallAPI.BR_Send(getAnalogIntCallType(eDeviceType), HomeAutomation_Call.CALLTYPE_SEND_DOOR_OPEN, nDong, nHo);
+            mAnalogCallAPI.sendHomeAutoCallBR(getAnalogIntCallType(eDeviceType), HomeAutomation_Call.CALLTYPE_SEND_DOOR_OPEN, nDong, nHo);
         } catch (Exception e) {
             Log.e(TAG, "[Exception] sendDoorOpen(CALLTYPE eDeviceType, int nDong, int nHo)");
             e.printStackTrace();

+ 30 - 18
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/MainActivity.java

@@ -332,8 +332,6 @@ public class MainActivity extends WpadActivity {
         try {
             Log.i(TAG, "=============== [START - MainActivity] ===============");
 
-            sendCallStateBR(1);
-
             registerWallPadCallLiveBRReceiver();
 
             Global.setGlobalContext(this);
@@ -624,7 +622,7 @@ public class MainActivity extends WpadActivity {
             setContentView(AllLayout);
 
             getCallTimeoutEnable();
-            addBrActionFilter(HomeAutomation_Call.BR_ACTION_NAME);
+            addBrActionFilter(HomeAutomation_Call.BR_HOME_AUTOMATION_CALL);
             sendHandlerMsgDelayed(HANDLERMSG.CHECK_RECEIVINGCALL, 0, 0, 500);
 
             // 8. Window Resize
@@ -635,19 +633,10 @@ public class MainActivity extends WpadActivity {
         }
     }
 
-    private void sendCallStateBR(int nVal)
-    {
-        Intent intent = new Intent();
-        intent.setAction(define.NOTIFY_CALLAPP_TOP);
-        intent.putExtra("CALLSATUS", nVal);
-        sendBroadcast(intent);
-    }
     @Override
     protected void onDestroy() {
         LOG("=============== [onDestroy] ===============");
-
-        sendCallStateBR(0);
-
+        sendBlockHomeAutoCallBR();
         sendBlockSIPCallBR();
         mSound.StopAll();
         mSound.Release();
@@ -849,7 +838,7 @@ public class MainActivity extends WpadActivity {
     protected void onBrReceive(Intent intent) {
         super.onBrReceive(intent);
         LOG_INFO("[onBrReceive] Action : " + intent.getAction());
-        if (intent.getAction().equals(HomeAutomation_Call.BR_ACTION_NAME)) mCallController.onAnalogCallEvent(intent);
+        if (intent.getAction().equals(HomeAutomation_Call.BR_HOME_AUTOMATION_CALL)) mCallController.onAnalogCallEvent(intent);
     }
 
 
@@ -2574,13 +2563,17 @@ public class MainActivity extends WpadActivity {
         try {
             Log.i(TAG, "[showRemoteCallNoticeText] bRun [" + bRun + "]");
             if (bRun) {
-                TopRemoteCallNotice.setText("모바일 통화중");
-                TopRemoteCallNotice.setVisibility(View.VISIBLE);
+                if (TopRemoteCallNotice != null) {
+                    TopRemoteCallNotice.setText("모바일 통화중");
+                    TopRemoteCallNotice.setVisibility(View.VISIBLE);
+                }
                 startRemoteCallProcessNotice();
             }
             else {
-                TopRemoteCallNotice.setText("");
-                TopRemoteCallNotice.setVisibility(View.INVISIBLE);
+                if (TopRemoteCallNotice != null) {
+                    TopRemoteCallNotice.setText("");
+                    TopRemoteCallNotice.setVisibility(View.INVISIBLE);
+                }
                 stopRemoteCallProcessNotice();
             }
         } catch (Exception e) {
@@ -4962,6 +4955,9 @@ public class MainActivity extends WpadActivity {
                         finishWallPadCall();
                     }
                 }
+                else if (strAction.equals(HomeAutomation_Call.BR_HOME_AUTOMATION_CALL)) {
+                    Log.e(TAG, "[onReceive] ========== HomeAutomation_Call.BR_HOME_AUTOMATION_CALL ==========");
+                }
                 else if (strAction.equals(Declare.BR.WALLPAD_ALERT)) {
                     Log.d(this.TAG, "[onReceive] strAction [" + strAction + "]");
                     int nKind = intent.getIntExtra(define.NOTIBR_KIND, 0);
@@ -5071,6 +5067,7 @@ public class MainActivity extends WpadActivity {
             mIntentFilter.addAction(Declare.BR.VISITOR_REMOTE_CALL);
             mIntentFilter.addAction(Declare.BR.BR_SHOW_REMOTEVIEW_TRUE);
             mIntentFilter.addAction(Declare.BR.BR_SHOW_REMOTEVIEW_FALSE);
+            mIntentFilter.addAction(HomeAutomation_Call.BR_HOME_AUTOMATION_CALL);
             registerReceiver(mMainExtraEventReceiver, mIntentFilter, null, null);
 
             mIntentFilter = new IntentFilter();
@@ -5159,6 +5156,7 @@ public class MainActivity extends WpadActivity {
             }
             bFinishing = true;
 
+            sendBlockHomeAutoCallBR();
             sendBlockSIPCallBR();
 
             notifyCallAppFinish();
@@ -5325,6 +5323,20 @@ public class MainActivity extends WpadActivity {
         }
     }
 
+    private void sendBlockHomeAutoCallBR() {
+        try {
+            Log.i(TAG, "[sendBlockHomeAutoCallBR] ===== START =====");
+            Intent mIntent = new Intent();
+            mIntent.setAction(HomeAutomation_Call.BR_HOME_AUTOMATION_CALL_OPTION);
+            mIntent.putExtra(HomeAutomation_Call.BR_BLOCK_NEWCALL, true);
+            mIntent.putExtra(HomeAutomation_Call.BR_BLOCK_NEWCALL_RELEASESEC, 1000);
+            getApplicationContext().sendBroadcast(mIntent);
+        } catch (Exception e) {
+            Log.e(TAG, "[Exception] sendBlockHomeAutoCallBR()");
+            e.printStackTrace();
+        }
+    }
+
 
 
 

+ 101 - 418
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkGuard.java

@@ -20,6 +20,7 @@ import android.widget.SeekBar;
 
 import com.artncore.WallPadDataMgr.wallpaddbmgr;
 import com.artncore.WallPadDataMgr.wallpaddbmgr.AddressSet;
+import com.artncore.commons.define;
 import com.artncore.wallpadimap.RetProci;
 
 import kr.co.icontrols.callengine.engine.CallController.CallEventListener;
@@ -88,10 +89,10 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
     WpadImageView IMG_GUARD_BACKGROUND;
     WpadImageView IMG_VIDEO_MODULE;
     WpadImageView IMG_VOLUME;
-    WpadImageView BTN_CONTROL;
-    WpadImageView BTN_MAINGATE;
-    WpadImageView BTN_SUBGATE;
-    WpadImageView BTN_OFFICE;
+//    WpadImageView BTN_CONTROL;
+//    WpadImageView BTN_MAINGATE;
+//    WpadImageView BTN_SUBGATE;
+//    WpadImageView BTN_OFFICE;
     WpadImageView BTN_TALK;
     WpadImageView BTN_END;
 
@@ -130,11 +131,11 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
             ViewRegistration(layout, IMG_VIDEO_MODULE, Common.ImgPosition.GetX(95), Common.ImgPosition.GetY(112));
 
             if (ConfigValues.bEasyModeUse) {
-                BTN_CONTROL = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 272, R.drawable.btn_guard_1_normal_easymode, R.drawable.btn_guard_1_pressed_easymode, ID.SCREEN.TALKGUARD.ELEMENT.BUTTON.CONTROL);
-                ViewRegistration(layout, BTN_CONTROL, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(110));
-
-                BTN_OFFICE = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 272, R.drawable.btn_guard_4_normal_easymode, R.drawable.btn_guard_4_pressed_easymode, ID.SCREEN.TALKGUARD.ELEMENT.BUTTON.OFFICE);
-                ViewRegistration(layout, BTN_OFFICE, Common.ImgPosition.GetX(1001), Common.ImgPosition.GetY(110));
+//                BTN_CONTROL = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 272, R.drawable.btn_guard_1_normal_easymode, R.drawable.btn_guard_1_pressed_easymode, ID.SCREEN.TALKGUARD.ELEMENT.BUTTON.CONTROL);
+//                ViewRegistration(layout, BTN_CONTROL, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(110));
+//
+//                BTN_OFFICE = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 272, R.drawable.btn_guard_4_normal_easymode, R.drawable.btn_guard_4_pressed_easymode, ID.SCREEN.TALKGUARD.ELEMENT.BUTTON.OFFICE);
+//                ViewRegistration(layout, BTN_OFFICE, Common.ImgPosition.GetX(1001), Common.ImgPosition.GetY(110));
 
                 BTN_TALK = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 272, R.drawable.btn_call_normal_easymode, R.drawable.btn_call_pressed_easymode, ID.SCREEN.TALKGUARD.ELEMENT.BUTTON.TALK);
                 ViewRegistration(layout, BTN_TALK, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(382));
@@ -162,17 +163,17 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
             }
             else {
                 //modify KSJ
-                BTN_CONTROL = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 181, R.drawable.btn_guard_ctrl_normal, R.drawable.btn_guard_ctrl_pressed, ID.SCREEN.TALKGUARD.ELEMENT.BUTTON.CONTROL);
-                //ViewRegistration(layout, BTN_CONTROL, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(110));
-
-                BTN_MAINGATE = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 181, R.drawable.btn_guard_main_normal, R.drawable.btn_guard_main_pressed, ID.SCREEN.TALKGUARD.ELEMENT.BUTTON.MAINGATE);
-                //ViewRegistration(layout, BTN_MAINGATE, Common.ImgPosition.GetX(1001), Common.ImgPosition.GetY(110));
-
-                BTN_SUBGATE = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 181, R.drawable.btn_guard_sub_normal, R.drawable.btn_guard_sub_pressed, ID.SCREEN.TALKGUARD.ELEMENT.BUTTON.SUBGATE);
-                //ViewRegistration(layout, BTN_SUBGATE, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(291));
-
-                BTN_OFFICE = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 181, R.drawable.btn_guard_office_normal, R.drawable.btn_guard_office_pressed, ID.SCREEN.TALKGUARD.ELEMENT.BUTTON.OFFICE);
-                //ViewRegistration(layout, BTN_OFFICE, Common.ImgPosition.GetX(1001), Common.ImgPosition.GetY(291));
+//                BTN_CONTROL = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 181, R.drawable.btn_guard_ctrl_normal, R.drawable.btn_guard_ctrl_pressed, ID.SCREEN.TALKGUARD.ELEMENT.BUTTON.CONTROL);
+//                //ViewRegistration(layout, BTN_CONTROL, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(110));
+//
+//                BTN_MAINGATE = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 181, R.drawable.btn_guard_main_normal, R.drawable.btn_guard_main_pressed, ID.SCREEN.TALKGUARD.ELEMENT.BUTTON.MAINGATE);
+//                //ViewRegistration(layout, BTN_MAINGATE, Common.ImgPosition.GetX(1001), Common.ImgPosition.GetY(110));
+//
+//                BTN_SUBGATE = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 181, R.drawable.btn_guard_sub_normal, R.drawable.btn_guard_sub_pressed, ID.SCREEN.TALKGUARD.ELEMENT.BUTTON.SUBGATE);
+//                //ViewRegistration(layout, BTN_SUBGATE, Common.ImgPosition.GetX(815), Common.ImgPosition.GetY(291));
+//
+//                BTN_OFFICE = new WpadImageView(context, TOUCH_KIND.BUTTON, 186, 181, R.drawable.btn_guard_office_normal, R.drawable.btn_guard_office_pressed, ID.SCREEN.TALKGUARD.ELEMENT.BUTTON.OFFICE);
+//                //ViewRegistration(layout, BTN_OFFICE, Common.ImgPosition.GetX(1001), Common.ImgPosition.GetY(291));
 
                 BTN_TALK = new WpadImageView(context, TOUCH_KIND.BUTTON, 230, 272, R.drawable.btn_guard_call_normal, R.drawable.btn_guard_call_pressed, ID.SCREEN.TALKGUARD.ELEMENT.BUTTON.TALK);
                 ViewRegistration(layout, BTN_TALK, Common.ImgPosition.GetX(908), Common.ImgPosition.GetY(110));
@@ -276,22 +277,7 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
                 mPathCheckHandler.removeMessages(1);
                 mPathCheckHandler.removeMessages(2);
             }
-            if (mCtrlBTNAnimHandler != null) {
-                mCtrlBTNAnimHandler.removeMessages(0);
-                mCtrlBTNAnimHandler.removeMessages(1);
-            }
-            if (mMainBTNAnimHandler != null) {
-                mMainBTNAnimHandler.removeMessages(0);
-                mMainBTNAnimHandler.removeMessages(1);
-            }
-            if (mSubBTNAnimHandler != null) {
-                mSubBTNAnimHandler.removeMessages(0);
-                mSubBTNAnimHandler.removeMessages(1);
-            }
-            if (mOfficeBTNAnimHandler != null) {
-                mOfficeBTNAnimHandler.removeMessages(0);
-                mOfficeBTNAnimHandler.removeMessages(1);
-            }
+
             if (mCallBTNAnimHandler != null) {
                 mCallBTNAnimHandler.removeMessages(0);
                 mCallBTNAnimHandler.removeMessages(1);
@@ -519,7 +505,8 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
                     }
                     ((MainActivity)mContext).displayRemoteID(null);
                     Global.stopMelodyRepeat();
-                    MainActivity.mSound.PlayMent(SND.setting.RETRY_ACTION);
+                    sendSoundPlayRequestBR(SND.setting.RETRY_ACTION);
+//                    MainActivity.mSound.PlayMent(SND.setting.RETRY_ACTION);
                     MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.GUARD, CALLSTATUS.IDLE);
                     MainActivity.mCallController.stop1stCallTimer();
                     Global.change1stCallLogAction(CALLACTION.REJECT);
@@ -552,6 +539,7 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
                         ((MainActivity)mContext).finishPopUp(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
                     }
 
+                    doEnd();
                     MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
                     ((MainActivity)mContext).displayRemoteID(null);
                     Global.stopMelodyRepeat();
@@ -576,7 +564,8 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
                     if (eCallOwner != CALLOWNER.WALLPAD) {
                         ((MainActivity)mContext).finishPopUp(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
                     }
-                    MainActivity.mCallController.quitMoIPCall();
+//                    MainActivity.mCallController.quitMoIPCall();
+                    doEnd();
                     MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.GUARD, CALLSTATUS.IDLE);
                     MainActivity.mCallController.stop1stCallTimer();
                     MainActivity.mCallController.stop2ndCallTimer();
@@ -1571,38 +1560,12 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
         try {
             getVolume();
             drawVolume();
-            getGuardListInfo();
-            swap5thBTN(false);
-            //enableEndBTN(true)
         } catch (Exception e) {
             Log.e(TAG, "[Exception] displayScreenValues()");
             e.printStackTrace();
         }
     }
 
-    private void getGuardListInfo() {
-        try {
-            int nGuardCnt = ConfigValues.mGuardListTable.getCnt();
-            for (int i = 0; i < nGuardCnt; i++) {
-                String guardName = ConfigValues.mGuardListTable.getGuardInfo(i).NAME();
-                Log.d(TAG, "[getGuardListInfo] guardName [" + guardName + "]");
-                if (guardName.contains("관할") || guardName.equals("경비실")) {
-                    strCONTROLGUARD_IP = ConfigValues.mGuardListTable.getGuardInfo(i).IP();
-                } else if (guardName.contains("정문")) {
-                    strMAINGATEGUARD_IP = ConfigValues.mGuardListTable.getGuardInfo(i).IP();
-                } else if (guardName.contains("후문")) {
-                    strSUBGATEGUARD_IP = ConfigValues.mGuardListTable.getGuardInfo(i).IP();
-                } else if (guardName.equals("관리실")) {
-                    strOFFICEGUARD_IP = ConfigValues.mGuardListTable.getGuardInfo(i).IP();
-                }
-            }
-            setGuardBTNEnable(true);
-        } catch (Exception e) {
-            Log.e(TAG, "[Exception] getGuardListInfo()");
-            e.printStackTrace();
-        }
-    }
-
     private String getDongString() {
         try {
             wallpaddbmgr DBMGR = new wallpaddbmgr(mContext);
@@ -1617,200 +1580,91 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
         }
     }
 
-    private void changeBTN_Activated(String strRemoteIP) {
+    private void setBTNStatus(String strRemoteIP) {
         try {
-            String strGuardName = MainActivity.mCallController.getGuardName(strRemoteIP);
-            LOG_INFO("[changeBTN_Activated] strRemoteIP [" + strRemoteIP + "], strGuardName [" + strGuardName + "]");
-            if (strGuardName.contains("관할") || strGuardName.equals("경비실")) {
-                mCtrlBTNAnimHandler.sendEmptyMessage(0);
+            LOG("[setBTNStatus] MainActivity.mCallController.mCallInfo.getGUARD() [" + MainActivity.mCallController.mCallInfo.getGUARD() + "]");
+            if (MainActivity.mCallController.mCallInfo.getGUARD() == CALLSTATUS.TRYING_CALL) {
+                ((MainActivity) mContext).setMenuBTNEnable(false);
+                runFlickerCallLED();
+
                 if (ConfigValues.bEasyModeUse) {
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_4_disabeld_easymode);
-                } else {
-                    BTN_MAINGATE.setButtonEventOffEnable(R.drawable.btn_guard_main_disabled);
-                    BTN_SUBGATE.setButtonEventOffEnable(R.drawable.btn_guard_sub_disabled);
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_office_disabled);
+                    BTN_TALK.setButtonEventOffEnable(R.drawable.btn_call_disabled_easymode);   // 비황성화
+                    BTN_END.setButtonEventOffEnable(R.drawable.btn_end_disabled_easymode);   // 비활성화
                 }
-            } else if (strGuardName.contains("정문")) {
-                if (ConfigValues.bEasyModeUse) {
-                    BTN_TALK.setButtonEventOffDisable();
-                    mCallBTNAnimHandler.sendEmptyMessage(0);
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_1_disabled_easymode);
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_4_disabeld_easymode);
-                } else {
-                    mMainBTNAnimHandler.sendEmptyMessage(0);
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_ctrl_disabled);
-                    BTN_SUBGATE.setButtonEventOffEnable(R.drawable.btn_guard_sub_disabled);
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_office_disabled);
+                else {
+                    BTN_TALK.setButtonEventOffEnable(R.drawable.btn_guard_call_disabled);   // 비활성화
+                    BTN_END.setButtonEventOffEnable(R.drawable.btn_guard_end_disabled);   // 비활성화
                 }
-            } else if (strGuardName.contains("후문")) {
+            }
+            else if (MainActivity.mCallController.mCallInfo.getGUARD() == CALLSTATUS.CALLING) {
+                ((MainActivity) mContext).setMenuBTNEnable(false);
+                runFlickerCallLED();
+
                 if (ConfigValues.bEasyModeUse) {
-                    BTN_TALK.setButtonEventOffDisable();
-                    mCallBTNAnimHandler.sendEmptyMessage(0);
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_1_disabled_easymode);
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_4_disabeld_easymode);
-                } else {
-                    mSubBTNAnimHandler.sendEmptyMessage(0);
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_ctrl_disabled);
-                    BTN_MAINGATE.setButtonEventOffEnable(R.drawable.btn_guard_main_disabled);
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_office_disabled);
+                    BTN_TALK.setButtonEventOffEnable(R.drawable.btn_call_disabled_easymode);   // 비황성화
+                    BTN_END.setButtonEventOffDisable();   // 활성화
                 }
-            } else if (strGuardName.equals("관리실")) {
-                mOfficeBTNAnimHandler.sendEmptyMessage(0);
-                if (ConfigValues.bEasyModeUse) {
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_1_disabled_easymode);
-                } else {
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_ctrl_disabled);
-                    BTN_MAINGATE.setButtonEventOffEnable(R.drawable.btn_guard_main_disabled);
-                    BTN_SUBGATE.setButtonEventOffEnable(R.drawable.btn_guard_sub_disabled);
+                else {
+                    BTN_TALK.setButtonEventOffEnable(R.drawable.btn_guard_call_disabled);   // 비활성화
+                    BTN_END.setButtonEventOffDisable();   // 활성화
                 }
-            } else {
+            }
+            else if (MainActivity.mCallController.mCallInfo.getGUARD() == CALLSTATUS.CALLED) {
+                runFlickerCallLED();
+                ((MainActivity) mContext).setMenuBTNEnable(false);
+                enableEndBTN(true);
+
                 if (ConfigValues.bEasyModeUse) {
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_1_disabled_easymode);
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_4_disabeld_easymode);
-                } else {
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_ctrl_disabled);
-                    BTN_MAINGATE.setButtonEventOffEnable(R.drawable.btn_guard_main_disabled);
-                    BTN_SUBGATE.setButtonEventOffEnable(R.drawable.btn_guard_sub_disabled);
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_office_disabled);
+                    BTN_TALK.setButtonEventOffDisable();   // 활성화
+                    BTN_END.setButtonEventOffDisable();   // 활성화
+                }
+                else {
+                    BTN_TALK.setButtonEventOffDisable();   // 활성화
+                    BTN_END.setButtonEventOffDisable();   // 활성화
                 }
-                swap5thBTN(false);
             }
-        } catch (Exception e) {
-            Log.e(TAG, "[Exception] changeBTN_Activated(String strRemoteIP)");
-            e.printStackTrace();
-        }
-    }
+            else if (MainActivity.mCallController.mCallInfo.getGUARD() == CALLSTATUS.TALKING) {
+                ((MainActivity) mContext).setMenuBTNEnable(false);
+                setOnCallLED();
 
-    private void changeBTNImage_Selected(String strRemoteIP) {
-        try {
-            LOG("[changeBTNImage_Selected] strRemoteIP [" + strRemoteIP + "]");
-            int nGuardCnt = ConfigValues.mGuardListTable.getCnt();
-            String strGuardName = "NONE";
-            for (int i = 0; i < nGuardCnt; i++) {
-                if (ConfigValues.mGuardListTable.getGuardInfo(i).IP().equals(strRemoteIP)) {
-                    strGuardName = ConfigValues.mGuardListTable.getGuardInfo(i).NAME();
-                    break;
+                if (ConfigValues.bEasyModeUse) {
+                    BTN_TALK.setButtonEventOffEnable(R.drawable.btn_call_disabled_easymode);   // 비황성화
+                    BTN_END.setButtonEventOffDisable();   // 활성화
+                }
+                else {
+                    BTN_TALK.setButtonEventOffEnable(R.drawable.btn_guard_call_disabled);   // 비활성화
+                    BTN_END.setButtonEventOffDisable();   // 활성화
                 }
             }
+            else if (MainActivity.mCallController.mCallInfo.getGUARD() == CALLSTATUS.CANCEL) {
+                ((MainActivity) mContext).setMenuBTNEnable(false);
 
-            if (strGuardName.contains("관할") || strGuardName.equals("경비실")) {
-                mCtrlBTNAnimHandler.removeMessages(0);
-                mCtrlBTNAnimHandler.removeMessages(1);
                 if (ConfigValues.bEasyModeUse) {
-                    BTN_CONTROL.setEnabled(false);
-                    BTN_OFFICE.setEnabled(true);
-                    BTN_CONTROL.setImageResource(R.drawable.btn_guard_1_selected_easymode);
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_4_disabeld_easymode);
-                } else {
-                    BTN_CONTROL.setEnabled(false);
-                    BTN_MAINGATE.setEnabled(true);
-                    BTN_SUBGATE.setEnabled(true);
-                    BTN_OFFICE.setEnabled(true);
-                    BTN_CONTROL.setImageResource(R.drawable.btn_guard_ctrl_selected);
-                    BTN_MAINGATE.setButtonEventOffEnable(R.drawable.btn_guard_main_disabled);
-                    BTN_SUBGATE.setButtonEventOffEnable(R.drawable.btn_guard_sub_disabled);
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_office_disabled);
+                    BTN_TALK.setButtonEventOffEnable(R.drawable.btn_call_disabled_easymode);   // 비황성화
+                    BTN_END.setButtonEventOffEnable(R.drawable.btn_end_disabled_easymode);   // 비활성화
                 }
-            } else if (strGuardName.contains("정문")) {
-                mMainBTNAnimHandler.removeMessages(0);
-                mMainBTNAnimHandler.removeMessages(1);
-                mCallBTNAnimHandler.removeMessages(0);
-                mCallBTNAnimHandler.removeMessages(1);
-                if (ConfigValues.bEasyModeUse) {
-                    BTN_CONTROL.setEnabled(true);
-                    BTN_OFFICE.setEnabled(true);
-                    BTN_TALK.setButtonEventOffEnable();
-                    BTN_TALK.setImageResource(R.drawable.btn_call_selected_easymode);
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_1_disabled_easymode);
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_4_disabeld_easymode);
-                } else {
-                    BTN_CONTROL.setEnabled(true);
-                    BTN_MAINGATE.setEnabled(false);
-                    BTN_SUBGATE.setEnabled(true);
-                    BTN_OFFICE.setEnabled(true);
-                    BTN_MAINGATE.setImageResource(R.drawable.btn_guard_main_selected);
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_ctrl_disabled);
-                    BTN_SUBGATE.setButtonEventOffEnable(R.drawable.btn_guard_sub_disabled);
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_office_disabled);
+                else {
+                    BTN_TALK.setButtonEventOffEnable(R.drawable.btn_guard_call_disabled);   // 비활성화
+                    BTN_END.setButtonEventOffEnable(R.drawable.btn_guard_end_disabled);   // 비활성화
                 }
-            } else if (strGuardName.contains("후문")) {
-                mSubBTNAnimHandler.removeMessages(0);
-                mSubBTNAnimHandler.removeMessages(1);
-                mCallBTNAnimHandler.removeMessages(0);
-                mCallBTNAnimHandler.removeMessages(1);
+            }
+            else if (MainActivity.mCallController.mCallInfo.getGUARD() == CALLSTATUS.TIMEOUT_1STCALL) {
+                ((MainActivity) mContext).setMenuBTNEnable(false);
+
                 if (ConfigValues.bEasyModeUse) {
-                    BTN_CONTROL.setEnabled(true);
-                    BTN_OFFICE.setEnabled(true);
-                    BTN_TALK.setButtonEventOffEnable();
-                    BTN_TALK.setImageResource(R.drawable.btn_call_selected_easymode);
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_1_disabled_easymode);
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_4_disabeld_easymode);
-                } else {
-                    BTN_CONTROL.setEnabled(true);
-                    BTN_MAINGATE.setEnabled(true);
-                    BTN_SUBGATE.setEnabled(false);
-                    BTN_OFFICE.setEnabled(true);
-                    BTN_SUBGATE.setImageResource(R.drawable.btn_guard_sub_selected);
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_ctrl_disabled);
-                    BTN_MAINGATE.setButtonEventOffEnable(R.drawable.btn_guard_main_disabled);
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_office_disabled);
+                    BTN_TALK.setButtonEventOffEnable(R.drawable.btn_call_disabled_easymode);   // 비황성화
+                    BTN_END.setButtonEventOffEnable(R.drawable.btn_end_disabled_easymode);   // 비활성화
                 }
-            } else if (strGuardName.equals("관리실")) {
-                mOfficeBTNAnimHandler.removeMessages(0);
-                mOfficeBTNAnimHandler.removeMessages(1);
-                if (ConfigValues.bEasyModeUse) {
-                    BTN_CONTROL.setEnabled(true);
-                    BTN_OFFICE.setEnabled(false);
-                    BTN_OFFICE.setImageResource(R.drawable.btn_guard_4_selected_easymode);
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_1_disabled_easymode);
-                } else {
-                    BTN_CONTROL.setEnabled(true);
-                    BTN_MAINGATE.setEnabled(true);
-                    BTN_SUBGATE.setEnabled(true);
-                    BTN_OFFICE.setEnabled(false);
-                    BTN_OFFICE.setImageResource(R.drawable.btn_guard_office_selected);
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_ctrl_disabled);
-                    BTN_MAINGATE.setButtonEventOffEnable(R.drawable.btn_guard_main_disabled);
-                    BTN_SUBGATE.setButtonEventOffEnable(R.drawable.btn_guard_sub_disabled);
+                else {
+                    BTN_TALK.setButtonEventOffEnable(R.drawable.btn_guard_call_disabled);   // 비활성화
+                    BTN_END.setButtonEventOffEnable(R.drawable.btn_guard_end_disabled);   // 비활성화
                 }
             }
-        } catch (Exception e) {
-            Log.e(TAG, "[Exception] changeBTNImage_Selected(String strRemoteIP)");
-            e.printStackTrace();
-        }
-    }
-
-    private void setBTNStatus(String strRemoteIP) {
-        try {
-            LOG("[setBTNStatus] MainActivity.mCallController.mCallInfo.getGUARD() [" + MainActivity.mCallController.mCallInfo.getGUARD() + "]");
-            if (MainActivity.mCallController.mCallInfo.getGUARD() == CALLSTATUS.CALLING) {
-                ((MainActivity) mContext).setMenuBTNEnable(false);
-                changeBTNImage_Selected(strRemoteIP);
-                runFlickerCallLED();
-            } else if (MainActivity.mCallController.mCallInfo.getGUARD() == CALLSTATUS.CALLED) {
-                runFlickerCallLED();
-                ((MainActivity) mContext).setMenuBTNEnable(false);
-                changeBTN_Activated(strRemoteIP);
-                enableEndBTN(true);
-            } else if (MainActivity.mCallController.mCallInfo.getGUARD() == CALLSTATUS.TALKING) {
-                ((MainActivity) mContext).setMenuBTNEnable(false);
-                changeBTNImage_Selected(strRemoteIP);
-                setOnCallLED();
-                swap5thBTN(true);
-            } else {
+            else {
                 mCallBTNAnimHandler.removeMessages(0);
                 mCallBTNAnimHandler.removeMessages(1);
-                mCtrlBTNAnimHandler.removeMessages(0);
-                mCtrlBTNAnimHandler.removeMessages(1);
-                mMainBTNAnimHandler.removeMessages(0);
-                mMainBTNAnimHandler.removeMessages(1);
-                mSubBTNAnimHandler.removeMessages(0);
-                mSubBTNAnimHandler.removeMessages(1);
-                mOfficeBTNAnimHandler.removeMessages(0);
-                mOfficeBTNAnimHandler.removeMessages(1);
 
                 ((MainActivity) mContext).setMenuBTNEnable(true);
-                setGuardBTNEnable(false);
                 setOffCallLED();
             }
         } catch (Exception e) {
@@ -1836,107 +1690,6 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
         }
     }
 
-    private void setGuardBTNEnable(boolean bEnable) {
-        try {
-            LOG("[setGuardBTNEnable] bEnable [" + bEnable + "]");
-
-            if (bEnable) {
-                if (ConfigValues.bEasyModeUse) {
-                    if (strCONTROLGUARD_IP.equals("NONE"))
-                        BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_1_disabled_easymode);
-                    else {
-                        BTN_CONTROL.setButtonEventOffDisable();
-                        BTN_CONTROL.setImageResource(R.drawable.btn_guard_1_normal_easymode);
-                    }
-                    if (strOFFICEGUARD_IP.equals("NONE")) {
-                        BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_4_disabeld_easymode);
-                    } else {
-                        BTN_OFFICE.setButtonEventOffDisable();
-                        BTN_OFFICE.setImageResource(R.drawable.btn_guard_4_normal_easymode);
-                    }
-                    LOG("[setGuardBTNEnable] bEnable 1 [" + bEnable + "]");
-
-                    BTN_TALK.setButtonEventOffDisable();
-                    BTN_TALK.setImageResource(R.drawable.btn_call_normal_easymode);
-                } else {
-                    if (strCONTROLGUARD_IP.equals("NONE"))
-                        BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_ctrl_disabled);
-                    else {
-                        BTN_CONTROL.setButtonEventOffDisable();
-                        BTN_CONTROL.setImageResource(R.drawable.btn_guard_ctrl_normal);
-                    }
-                    if (strMAINGATEGUARD_IP.equals("NONE"))
-                        BTN_MAINGATE.setButtonEventOffEnable(R.drawable.btn_guard_main_disabled);
-                    else {
-                        BTN_MAINGATE.setButtonEventOffDisable();
-                        BTN_MAINGATE.setImageResource(R.drawable.btn_guard_main_normal);
-                    }
-                    if (strSUBGATEGUARD_IP.equals("NONE"))
-                        BTN_SUBGATE.setButtonEventOffEnable(R.drawable.btn_guard_sub_disabled);
-                    else {
-                        BTN_SUBGATE.setButtonEventOffDisable();
-                        BTN_SUBGATE.setImageResource(R.drawable.btn_guard_sub_normal);
-                    }
-                    if (strOFFICEGUARD_IP.equals("NONE"))
-                        BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_office_disabled);
-                    else {
-                        BTN_OFFICE.setButtonEventOffDisable();
-                        BTN_OFFICE.setImageResource(R.drawable.btn_guard_office_normal);
-                    }
-                    //BTN_TALK.setEnabled(true);
-                    //LOG("[setGuardBTNEnable] bEnable 2 [" + bEnable + "]");
-                    //BTN_TALK.setButtonEventOffDisable();
-                    //BTN_TALK.setImageResource(R.drawable.btn_call_normal_easymode);
-
-                }
-            } else {
-                if (ConfigValues.bEasyModeUse) {
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_1_disabled_easymode);
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_4_disabeld_easymode);
-                    BTN_TALK.setButtonEventOffEnable(R.drawable.btn_call_disabled_easymode);
-                } else {
-                    BTN_CONTROL.setButtonEventOffEnable(R.drawable.btn_guard_ctrl_disabled);
-                    BTN_MAINGATE.setButtonEventOffEnable(R.drawable.btn_guard_main_disabled);
-                    BTN_SUBGATE.setButtonEventOffEnable(R.drawable.btn_guard_sub_disabled);
-                    BTN_OFFICE.setButtonEventOffEnable(R.drawable.btn_guard_office_disabled);
-                    BTN_TALK.setImageResource(R.drawable.btn_guard_call_disabled);
-                }
-            }
-        } catch (Exception e) {
-            Log.e(TAG, "[Exception] setGuardBTNEnable()");
-            e.printStackTrace();
-        }
-    }
-
-    private void swap5thBTN(boolean bEND) {
-        try {
-            if (bEND) {
-                if (ConfigValues.bEasyModeUse) {
-                    BTN_TALK.setButtonEventOffEnable(R.drawable.btn_call_disabled_easymode);
-                    BTN_END.setButtonEventOffDisable();
-                    BTN_END.setImageResource(R.drawable.btn_end_normal_easymode);
-                } else {
-                    BTN_TALK.setButtonEventOffEnable(R.drawable.btn_guard_call_disabled);
-                    BTN_END.setButtonEventOffDisable();
-                    BTN_END.setImageResource(R.drawable.btn_guard_end_normal);
-                }
-            } else {
-                if (ConfigValues.bEasyModeUse) {
-                    BTN_TALK.setButtonEventOffDisable();
-                    BTN_TALK.setImageResource(R.drawable.btn_call_normal_easymode);
-                    BTN_END.setButtonEventOffEnable(R.drawable.btn_end_disabled_easymode);
-                } else {
-                    BTN_TALK.setButtonEventOffDisable();
-                    BTN_TALK.setImageResource(R.drawable.btn_guard_call_normal);
-                    BTN_END.setButtonEventOffEnable(R.drawable.btn_guard_end_disabled);
-                }
-            }
-        } catch (Exception e) {
-            Log.e(TAG, "[Exception] swap5thBTN(boolean bEND)");
-            e.printStackTrace();
-        }
-    }
-
     private void enableEndBTN(boolean bEnable) {
         try {
             if (bEnable) {
@@ -2267,90 +2020,6 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
         }
     };
 
-    Handler mCtrlBTNAnimHandler = new Handler() {
-        @SuppressLint("HandlerLeak")
-        @Override
-        public void handleMessage(Message msg) {
-//            LOG("[mCtrlBTNAnimHandler] msg.what = " + msg.what);
-            if (msg.what == 0) {
-                if (MainActivity.mCallController.getTalkPath() == CALLPATH.NORMAL) {
-                    if (ConfigValues.bEasyModeUse)
-                        BTN_CONTROL.setImageResource(R.drawable.btn_guard_1_flashed_easymode);
-                    else BTN_CONTROL.setImageResource(R.drawable.btn_guard_ctrl_activated);
-                    mCtrlBTNAnimHandler.sendEmptyMessageDelayed(1, 500);
-                }
-            } else if (msg.what == 1) {
-                if (MainActivity.mCallController.getTalkPath() == CALLPATH.NORMAL) {
-                    if (ConfigValues.bEasyModeUse)
-                        BTN_CONTROL.setImageResource(R.drawable.btn_guard_1_normal_easymode);
-                    else BTN_CONTROL.setImageResource(R.drawable.btn_guard_ctrl_normal);
-                    mCtrlBTNAnimHandler.sendEmptyMessageDelayed(0, 500);
-                }
-            }
-        }
-    };
-
-    Handler mMainBTNAnimHandler = new Handler() {
-        @SuppressLint("HandlerLeak")
-        @Override
-        public void handleMessage(Message msg) {
-//            LOG("[mMainBTNAnimHandler] msg.what = " + msg.what);
-            if (msg.what == 0) {
-                if (MainActivity.mCallController.getTalkPath() == CALLPATH.NORMAL) {
-                    BTN_MAINGATE.setImageResource(R.drawable.btn_guard_main_activated);
-                    mMainBTNAnimHandler.sendEmptyMessageDelayed(1, 500);
-                }
-            } else if (msg.what == 1) {
-                if (MainActivity.mCallController.getTalkPath() == CALLPATH.NORMAL) {
-                    BTN_MAINGATE.setImageResource(R.drawable.btn_guard_main_normal);
-                    mMainBTNAnimHandler.sendEmptyMessageDelayed(0, 500);
-                }
-            }
-        }
-    };
-
-    Handler mSubBTNAnimHandler = new Handler() {
-        @SuppressLint("HandlerLeak")
-        @Override
-        public void handleMessage(Message msg) {
-//            LOG("[mSubBTNAnimHandler] msg.what = " + msg.what);
-            if (msg.what == 0) {
-                if (MainActivity.mCallController.getTalkPath() == CALLPATH.NORMAL) {
-                    BTN_SUBGATE.setImageResource(R.drawable.btn_guard_sub_activated);
-                    mSubBTNAnimHandler.sendEmptyMessageDelayed(1, 500);
-                }
-            } else if (msg.what == 1) {
-                if (MainActivity.mCallController.getTalkPath() == CALLPATH.NORMAL) {
-                    BTN_SUBGATE.setImageResource(R.drawable.btn_guard_sub_normal);
-                    mSubBTNAnimHandler.sendEmptyMessageDelayed(0, 500);
-                }
-            }
-        }
-    };
-
-    Handler mOfficeBTNAnimHandler = new Handler() {
-        @SuppressLint("HandlerLeak")
-        @Override
-        public void handleMessage(Message msg) {
-//            LOG("[mOfficeBTNAnimHandler] msg.what = " + msg.what);
-            if (msg.what == 0) {
-                if (MainActivity.mCallController.getTalkPath() == CALLPATH.NORMAL) {
-                    if (ConfigValues.bEasyModeUse)
-                        BTN_OFFICE.setImageResource(R.drawable.btn_guard_4_flashed_easymode);
-                    else BTN_OFFICE.setImageResource(R.drawable.btn_guard_office_activated);
-                    mOfficeBTNAnimHandler.sendEmptyMessageDelayed(1, 500);
-                }
-            } else if (msg.what == 1) {
-                if (MainActivity.mCallController.getTalkPath() == CALLPATH.NORMAL) {
-                    if (ConfigValues.bEasyModeUse)
-                        BTN_OFFICE.setImageResource(R.drawable.btn_guard_4_normal_easymode);
-                    else BTN_OFFICE.setImageResource(R.drawable.btn_guard_office_normal);
-                    mOfficeBTNAnimHandler.sendEmptyMessageDelayed(0, 500);
-                }
-            }
-        }
-    };
-
     private void finishWallpadCallApp() {
         try {
             doEnd();
@@ -2361,4 +2030,18 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
             e.printStackTrace();
         }
     }
+
+    public void sendSoundPlayRequestBR(int nSoundID) {
+        try {
+            Intent intent = new Intent();
+            intent.setAction(define.NOTIFY_ACNAME);
+            intent.putExtra(define.NOTIBR_KIND, define.NOTIFY_PLAYMENT);
+            intent.putExtra(define.NOTIBR_CONTENT, nSoundID);
+            getContext().sendBroadcast(intent);
+        } catch (Exception e) {
+            Log.e(TAG, "[Exception] sendSoundPlayRequestBR(int nSoundID)");
+            e.printStackTrace();
+        }
+    }
+
 }

+ 5 - 6
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkLobby.java

@@ -346,7 +346,7 @@ public class TalkLobby extends WpadScreen implements CallEventListener, MainEven
                             sendHandlerMsg(HANDLERMSG.HIDE_LOBBYVIDEO, 0, 0, null); // 문열림으로 통화 종료시 로비 영상 노이즈가 생기므로 영상을 GUI 아래로 내림
                             doDoorOpen();
                             //3초후에 종료 코드를 전송하기로 함(현재는 문열림 전송 후, 종료를 보내지 않고 있음)
-                            DelayedSendHanlderMsg(HANDLERMSG.CALL_END, 0, 0, null, 3000);
+                            DelayedSendHanlderMsg(HANDLERMSG.CALL_END, 0, 0, null, 1000);
                         }
                     } else if (ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.RELIEF_FILTER_01 <= nID && nID <= ID.SCREEN.TALKLOBBY.ELEMENT.BUTTON.RELIEF_FILTER_04) {
                         LOG_INFO("[onTouchEvent] [RELIEF_FILTER] BUTTON");
@@ -436,6 +436,7 @@ public class TalkLobby extends WpadScreen implements CallEventListener, MainEven
                     ((MainActivity) mContext).setCameraLobby();
                     ((MainActivity) mContext).showFrontVideo(false);
                     sendHandlerMsgDelayed(HANDLERMSG.SHOW_ANALOG_LOBBYVIDEO, 0, 0, 0, 1000);   // 1초
+                    sendHandlerMsgDelayed(HANDLERMSG.ENABLE_SAVE_VISITORPICTURE, 0, 0, null, 3000);   // 3초
 
                 }
                 else if (eCallStatus == CALLSTATUS.TALKING) {
@@ -562,7 +563,7 @@ public class TalkLobby extends WpadScreen implements CallEventListener, MainEven
                 } else if (eCallStatus == CALLSTATUS.DOOR_OPEN) {
                     //sendHandlerMsg(HANDLERMSG.DOOR_OPEN, 0, 0, null); // 방문객 원격통화 모바일에서 문열림
                     ((MainActivity) mContext).removeFrontVideoLayout();
-                    sendHandlerMsgDelayed(HANDLERMSG.CALL_END, 0, 0,null, 2000);   // 2초
+                    sendHandlerMsgDelayed(HANDLERMSG.CALL_END, 0, 0,null, 1000);   // 2초
                 } else {
                     Log.w(TAG, "[onCallEvent] Incorrect eCallStatus!!! eCallStatus = " + eCallStatus);
                 }
@@ -1430,13 +1431,11 @@ public class TalkLobby extends WpadScreen implements CallEventListener, MainEven
     private void enableSavePicBTN(boolean bEnable) {
         try {
             if (bEnable) {
-                if (ConfigValues.bReliefCall)
-                    BTN_SAVE_PICTURE.setImageResource(R.drawable.btn_photo_normal);
+                if (ConfigValues.bReliefCall) BTN_SAVE_PICTURE.setImageResource(R.drawable.btn_photo_normal);
                 else BTN_SAVE_PICTURE.setImageResource(R.drawable.btn_lobby_photo_normal);
                 BTN_SAVE_PICTURE.setButtonEventOffDisable();
             } else {
-                if (ConfigValues.bReliefCall)
-                    BTN_SAVE_PICTURE.setButtonEventOffEnable(R.drawable.btn_photo_disabled);
+                if (ConfigValues.bReliefCall) BTN_SAVE_PICTURE.setButtonEventOffEnable(R.drawable.btn_photo_disabled);
                 else BTN_SAVE_PICTURE.setButtonEventOffEnable(R.drawable.btn_lobby_photo_disabled);
             }
         } catch (Exception e) {

+ 87 - 106
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkResidence.java

@@ -176,8 +176,7 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                 SEEKBAR_VOLUME.setMax(100);
                 SEEKBAR_VOLUME.setOnSeekBarChangeListener(mOnVolumeChangeListener);
                 layout.addView(volumeLayout);
-            }
-            else {
+            } else {
                 LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                 LinearLayout volumeLayout = (LinearLayout) inflater.inflate(R.layout.volume_seekbar, null);
                 LayoutParams volumeParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
@@ -216,8 +215,7 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                 BTN_PORTRAIT = new WpadImageView(context, TOUCH_KIND.BUTTON, 230, 181, R.drawable.btn_residence_me_normal3, R.drawable.btn_residence_me_pressed3, ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.PORTRAIT_3);
                 ViewRegistration(layout, BTN_PORTRAIT, Common.ImgPosition.GetX(908), Common.ImgPosition.GetY(473));
                 BTN_PORTRAIT.setButtonEventOffEnable(R.drawable.btn_residence_me_disabled3);
-            }
-            else {
+            } else {
                 BTN_TALK = new WpadImageView(context, TOUCH_KIND.BUTTON, 230, 272, R.drawable.btn_residence_call_normal2, R.drawable.btn_residence_call_pressed2, ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.TALK_2);
                 ViewRegistration(layout, BTN_TALK, Common.ImgPosition.GetX(908), Common.ImgPosition.GetY(110));
 
@@ -259,7 +257,8 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
     protected void Initialize() {
         try {
             LOG_INFO("[Initialize]");
-            if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.IDLE) ((MainActivity) mContext).setMenuBTNEnable(false);
+            if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.IDLE)
+                ((MainActivity) mContext).setMenuBTNEnable(false);
             else ((MainActivity) mContext).setMenuBTNEnable(true);
 
             MainActivity.mCallController.setCallEventListener(this);
@@ -273,7 +272,7 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
 
             getVolume();
 
-            if (MainActivity.bFFMPEGEnable) ((MainActivity)mContext).showRemoteVideo(false, false);
+            if (MainActivity.bFFMPEGEnable) ((MainActivity) mContext).showRemoteVideo(false, false);
 
             MainActivity.mCallController.mVideoJNI.setDecoderInfo_V40(116, 85, 576, 405); // 세대통화시 영상 좌표 재설정
             MainActivity.mIOInterface.ctrlPopupGUI_Resi(false, bshowMyVideo); // 세대통화 시작시 초기화
@@ -300,7 +299,8 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
         super.onClose();
         try {
             LOG_INFO("[onClose]");
-            if (MainActivity.mIOInterface != null) MainActivity.mIOInterface.ctrlWallPadLED_Call(false);
+            if (MainActivity.mIOInterface != null)
+                MainActivity.mIOInterface.ctrlWallPadLED_Call(false);
             if (mPathCheckHandler != null) {
                 mPathCheckHandler.removeMessages(0);
                 mPathCheckHandler.removeMessages(1);
@@ -341,48 +341,46 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                 if (ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.TALK_2 <= nID && nID <= ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.TENKEY_HO) {
                     if (nID == ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.TALK_2 || nID == ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.TALK_3) {
                         // 통화중에 버튼 터치음을 발생시키면, 통화 상대방에게 터치음이 전달되므로 통화중에는 터치음을 출력하지 않는다.(JEFF, 2019.12.24)
-                        if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.TALKING) MainActivity.mSound.Play(SND.effect.TOUCH_LATCHED);
+                        if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.TALKING)
+                            MainActivity.mSound.Play(SND.effect.TOUCH_LATCHED);
 
                         if (Global.TargetInputStep == TARGETINFOINPUTSTEP.DONE) {
                             doTalk(CALLOWNER.WALLPAD);
-                        }
-                        else {
+                        } else {
                             MainActivity.mSound.Play(SND.setting.RETRY_INPUT);
                             initCallVariables();
                             updateScreen();
                         }
-                    }
-                    else if (nID == ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.END_2 || nID == ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.END_3) {
+                    } else if (nID == ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.END_2 || nID == ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.END_3) {
                         // 통화중에 버튼 터치음을 발생시키면, 통화 상대방에게 터치음이 전달되므로 통화중에는 터치음을 출력하지 않는다.(JEFF, 2019.12.24)
-                        if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.TALKING) MainActivity.mSound.Play(SND.effect.TOUCH_LATCHED);
+                        if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.TALKING)
+                            MainActivity.mSound.Play(SND.effect.TOUCH_LATCHED);
 
                         doEnd();
-                    }
-                    else if (nID == ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.PORTRAIT_3) {
+                    } else if (nID == ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.PORTRAIT_3) {
                         // 통화중에 버튼 터치음을 발생시키면, 통화 상대방에게 터치음이 전달되므로 통화중에는 터치음을 출력하지 않는다.(JEFF, 2019.12.24)
-                        if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.TALKING) MainActivity.mSound.Play(SND.effect.TOUCH_LATCHED);
+                        if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.TALKING)
+                            MainActivity.mSound.Play(SND.effect.TOUCH_LATCHED);
 
                         if (MainActivity.mCallController.mCallInfo.getRESI() == CALLSTATUS.TALKING) {
                             showMyVideo(!bshowMyVideo);
-                        }
-                        else {
+                        } else {
                             LOG_WARN("[onTouchEvent] Call Status is not TALKING!!!");
                         }
-                    }
-                    else if (nID == ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.DELETE) {
+                    } else if (nID == ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.DELETE) {
                         // 통화중에 버튼 터치음을 발생시키면, 통화 상대방에게 터치음이 전달되므로 통화중에는 터치음을 출력하지 않는다.(JEFF, 2019.12.24)
-                        if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.TALKING) MainActivity.mSound.Play(SND.effect.TOUCH_LATCHED);
+                        if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.TALKING)
+                            MainActivity.mSound.Play(SND.effect.TOUCH_LATCHED);
 
                         if (MainActivity.mCallController.mCallInfo.getRESI() == CALLSTATUS.IDLE) {
                             deleteResiInfo();
-                        }
-                        else {
+                        } else {
                             LOG_WARN("[onTouchEvent] Call Status is not IDLE!!!");
                         }
-                    }
-                    else if (nID == ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.DIVISION) {
+                    } else if (nID == ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.DIVISION) {
                         // 통화중에 버튼 터치음을 발생시키면, 통화 상대방에게 터치음이 전달되므로 통화중에는 터치음을 출력하지 않는다.(JEFF, 2019.12.24)
-                        if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.TALKING) MainActivity.mSound.Play(SND.effect.TOUCH_LATCHED);
+                        if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.TALKING)
+                            MainActivity.mSound.Play(SND.effect.TOUCH_LATCHED);
 
                         if (ConfigValues.bEnableHouseDivision) {
                             if (Global.TargetInputStep == TARGETINFOINPUTSTEP.DONG) {
@@ -397,15 +395,13 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                                 RemoteIDInfo.nHo_Extension = 1;
                                 Global.TargetInputStep = TARGETINFOINPUTSTEP.HO;
                                 updateResidenceInfo();
-                            }
-                            else if (Global.TargetInputStep == TARGETINFOINPUTSTEP.HO || Global.TargetInputStep == TARGETINFOINPUTSTEP.DONE) {
+                            } else if (Global.TargetInputStep == TARGETINFOINPUTSTEP.HO || Global.TargetInputStep == TARGETINFOINPUTSTEP.DONE) {
                                 RemoteIDInfo.bRentRoomSelected = true;
                                 RemoteIDInfo.nHo_Extension = 1;
                                 updateResidenceInfo();
                             }
                         }
-                    }
-                    else if (ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.TENKEY_01 <= nID && nID <= ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.TENKEY_09) {
+                    } else if (ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.TENKEY_01 <= nID && nID <= ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.TENKEY_09) {
                         int nPressedNum = nID - KEYBALANCE;
                         if (Global.TargetInputStep == TARGETINFOINPUTSTEP.DONG) {
                             RemoteIDInfo.strDong += nPressedNum;
@@ -474,13 +470,13 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                 LOG("[onTouchEvent] nID [" + nID + "], nEvent [" + nEvent + "]");
                 if (nID == ID.SCREEN.TALKRESIDENCE.ELEMENT.BUTTON.DELETE) {
                     // 통화중에 버튼 터치음을 발생시키면, 통화 상대방에게 터치음이 전달되므로 통화중에는 터치음을 출력하지 않는다.(JEFF, 2019.12.24)
-                    if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.TALKING) MainActivity.mSound.Play(SND.effect.TOUCH_LATCHED);
+                    if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.TALKING)
+                        MainActivity.mSound.Play(SND.effect.TOUCH_LATCHED);
 
                     if (MainActivity.mCallController.mCallInfo.getRESI() == CALLSTATUS.IDLE) {
                         initCallVariables();
                         updateScreen();
-                    }
-                    else {
+                    } else {
                         LOG_WARN("[onTouchEvent] Call Status is not IDLE!!!");
                     }
                 }
@@ -497,7 +493,8 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
         try {
             LOG_INFO("[onMainTouchEvent] eEvent [" + eEvent + "]");
             if (eEvent == MAINEVENT.BTN_HOME) {
-                if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.TALKING) Sound().Play(SND.effect.TOUCH_LATCHED);
+                if (MainActivity.mCallController.mCallInfo.getRESI() != CALLSTATUS.TALKING)
+                    Sound().Play(SND.effect.TOUCH_LATCHED);
                 finishWallpadCallApp();
             } else if (eEvent == MAINEVENT.BTN_HOME_MOBILE) {
                 finishWallpadCallApp();
@@ -536,8 +533,7 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
 
                     MainActivity.mCallController.set1stCallTimer(eCallType, MainActivity.mCallController.mCTT.WAITNG_INVITE_ACK);
                     Global.make1stCallHistoryInfo(strRemoteIP, strRemoteSIPID, CALLDIRECTION.OUT, CALLACTION.MISS, CALLRESULT.OUT_MISS);
-                }
-                else if (eCallStatus == CALLSTATUS.CALLING) {
+                } else if (eCallStatus == CALLSTATUS.CALLING) {
                     bRcvEnd = false;
                     Global.playMelodyRepeat(eCallType);
                     super.setFinishTimerDestroy();
@@ -559,13 +555,12 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                     super.setFinishTimerDestroy();
                     if (Global.getKitchenTVIdx(eCallOwner) >= 0 || Global.getBathPhoneIdx(eCallOwner) >= 0 || Global.getBathTVIdx(eCallOwner) >= 0 || eCallOwner == CALLOWNER.SUB_WALLPAD) {
                         MainActivity.mSubPhoneController.sendACKNewCall(eCallOwner, eCallType, strRemoteIP, null);
-                        ((MainActivity)(getContext())).StartPopup(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
+                        ((MainActivity) (getContext())).StartPopup(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
                     }
                     MainActivity.mCallController.set1stCallTimer(eCallType, MainActivity.mCallController.mCTT.CALLED);
                     updateScreen();
                     Global.make1stCallHistoryInfo(strRemoteIP, strRemoteSIPID, CALLDIRECTION.IN, CALLACTION.MISS, CALLRESULT.IN_MISS);
-                }
-                else if (eCallStatus == CALLSTATUS.TALKING) {
+                } else if (eCallStatus == CALLSTATUS.TALKING) {
                     Global.stopMelodyRepeat();
                     if (ConfigValues.bWallPadCameraEnable) {
                         if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT
@@ -577,9 +572,9 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                     if (eCallOwner != CALLOWNER.WALLPAD) {
                         ((MainActivity) mContext).StartPopup(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
                         MainActivity.mCallController.setTalkPath(CALLPATH.SUBPHONE_MOIP);
-                        if (eCallOwner == CALLOWNER.SUB_WALLPAD) MainActivity.mCallController.setSubWallPadAudioPath();
-                    }
-                    else {
+                        if (eCallOwner == CALLOWNER.SUB_WALLPAD)
+                            MainActivity.mCallController.setSubWallPadAudioPath();
+                    } else {
                         ((MainActivity) mContext).sendHandlerMsg(MainActivity.HANDLERMSG.SET_TEMPSYSTEM_VOLUME, 0, 0);// 통화 중 임의 볼륨값 설정 seulki
                         MainActivity.mCallController.setTalkPath(CALLPATH.MOIP_V40_RESIDENCE);
                     }
@@ -588,8 +583,7 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                     updateInstruction();
                     Global.change1stCallLogAction(CALLACTION.TALK);
                     Global.add1stCallHistoryInfoFinal();
-                }
-                else if (eCallStatus == CALLSTATUS.HOMEVIEW) {
+                } else if (eCallStatus == CALLSTATUS.HOMEVIEW) {
                     LOG_WARN("[onCallEvent] MOBILE HOMEVIEW!!!!");
                     // [방문객원격통화] 모바일에서 홈뷰어 요청 -> 모바일 기기로 월패드카메라 인코딩 영상 전송
                     ((MainActivity) mContext).showRemoteCallNoticeText(true); // 방문객원격통화 팝업 삭제 -> 상단 문구로 대체
@@ -599,8 +593,7 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                     //MainActivity.mCallController.mSIPInterface.videoSet(true, true, true);
                     MainActivity.mCallController.set1stCallTimer(eCallType, MainActivity.mCallController.mCTT.RESIDENCEnRESIDENCE); // 홈뷰어 타이머 3분
                     Global.make1stCallHistoryInfo("HOMEVIEW", "HOMEVIEW", CALLDIRECTION.OUT, CALLACTION.HOMEVIEW, CALLRESULT.OUT_HONEVIEW); // 통화기록 - 발신:세대:홈뷰어
-                }
-                else if (eCallStatus == CALLSTATUS.END) {
+                } else if (eCallStatus == CALLSTATUS.END) {
                     Global.stopMelodyRepeat();
                     bRemoteVideoShow = false;
                     if (ConfigValues.bWallPadCameraEnable) {
@@ -647,8 +640,7 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                     Global.change1stCallLogAction(CALLACTION.REJECT);
                     showMyVideo(false);
                     MainActivity.mCallController.MultiCallScenarioManager();
-                }
-                else if (eCallStatus == CALLSTATUS.BUSY) {
+                } else if (eCallStatus == CALLSTATUS.BUSY) {
                     Global.stopMelodyRepeat();
                     bRemoteVideoShow = false;
                     if (ConfigValues.bWallPadCameraEnable) {
@@ -708,6 +700,7 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                         ((MainActivity) mContext).finishPopUp(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
                     }
 
+                    doEnd();
                     MainActivity.mCallController.quitMoIPCall();
                     MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.RESIDENCE, CALLSTATUS.IDLE);
                     MainActivity.mCallController.stop1stCallTimer();
@@ -754,8 +747,7 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                         if (eResidenceCallStatus == CALLSTATUS.CALLING || eResidenceCallStatus == CALLSTATUS.CALLED || eResidenceCallStatus == CALLSTATUS.TALKING || eResidenceCallStatus == CALLSTATUS.HOMEVIEW) {
                             if (eCallOwner == CALLOWNER.WALLPAD || eCallOwner == CALLOWNER.NONE) {
                                 ((MainActivity) (getContext())).startMultiCallPopup(ID.POPUP.POPUP_MULTICALL_NOTICE);
-                            }
-                            else if (eCallOwner == CALLOWNER.MOBILE) {
+                            } else if (eCallOwner == CALLOWNER.MOBILE) {
                                 // 모바일로 홈뷰어 실행 중 멀티콜 오는 경우 통화중 처리
                                 MainActivity.mCallController.mCallInfo.setCallStatus(eCallType, CALLSTATUS.IDLE);
                                 MainActivity.mIOInterface.ctrlFrontCamPower(false);
@@ -764,9 +756,9 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                                     ((MainActivity) mContext).ctrlSmartIOTCamStatusMode(SmartRFCamStatusMode.STATUS_OFF);
                                     ((MainActivity) mContext).ctrlSmartIOTCamLEDMode(SmartRFCamLEDMode.LED_OFF);
                                 }
-                            }
-                            else {
-                                if (MainActivity.mPSTNController != null) MainActivity.mPSTNController.stopPSTNRingCntThread(); // PSTN 멀티콜 거절시 ring cnt 초기화
+                            } else {
+                                if (MainActivity.mPSTNController != null)
+                                    MainActivity.mPSTNController.stopPSTNRingCntThread(); // PSTN 멀티콜 거절시 ring cnt 초기화
                                 MainActivity.mCallController.stop2ndCallTimer();
                                 doMultiCallReject();
                                 if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT
@@ -778,12 +770,12 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                                 if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT
                                         || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT) {
                                     LOG("[onMultiCallEvent] bRemoteVideoShow [" + bRemoteVideoShow + "]");
-                                    if (bRemoteVideoShow) ctrlAlphaBlending(true); // 세대 월패드에서 내모습 보이기 출력중인 경우 멀티콜 거절시(팝업 종료시) 세대영상 출력
+                                    if (bRemoteVideoShow)
+                                        ctrlAlphaBlending(true); // 세대 월패드에서 내모습 보이기 출력중인 경우 멀티콜 거절시(팝업 종료시) 세대영상 출력
                                     else ctrlAlphaBlending(false);
                                 }
                             }
-                        }
-                        else {
+                        } else {
                             LOG_WARN("[onMultiCallEvent] Invalid eResidenceCallStatus [" + eResidenceCallStatus + "]");
                         }
 
@@ -797,15 +789,13 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
 //                        } else {
 //                            LOG_WARN("[onMultiCallEvent] Invalid eResidenceCallStatus [" + eResidenceCallStatus + "]");
 //                        }
-                    }
-                    else {
+                    } else {
                         // 멀티콜 있음
                         sendHandlerMsgDelayed(HANDLERMSG.OFF_FRONT, 0, 0, 2000);
                         MainActivity.mCallController.mCallInfo.setCallStatus(eCallType, CALLSTATUS.IDLE);
                         return;
                     }
-                }
-                else if (eCallType == CALLTYPE.LOBBY || eCallType == CALLTYPE.GUARD || eCallType == CALLTYPE.RESIDENCE) {
+                } else if (eCallType == CALLTYPE.LOBBY || eCallType == CALLTYPE.GUARD || eCallType == CALLTYPE.RESIDENCE) {
                     if (MainActivity.mCallController.mCallInfo.getMultiCallStatus() == CALLSTATUS.IDLE) {
                         // 멀티콜 없음
                         MultiCallInfo MCInfo = new MultiCallInfo();
@@ -822,14 +812,13 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                         if (eResidenceCallStatus == CALLSTATUS.CALLING || eResidenceCallStatus == CALLSTATUS.CALLED || eResidenceCallStatus == CALLSTATUS.TALKING || eResidenceCallStatus == CALLSTATUS.HOMEVIEW) {
                             if (eCallOwner == CALLOWNER.WALLPAD || eCallOwner == CALLOWNER.NONE) {
                                 ((MainActivity) (getContext())).startMultiCallPopup(ID.POPUP.POPUP_MULTICALL_NOTICE);
-                            }
-                            else if (eCallOwner == CALLOWNER.MOBILE) {
+                            } else if (eCallOwner == CALLOWNER.MOBILE) {
                                 // 모바일로 홈뷰어 실행 중 멀티콜 오는 경우 통화중 처리
                                 MainActivity.mCallController.mCallInfo.setCallStatus(eCallType, CALLSTATUS.IDLE);
                                 MainActivity.mCallController.rejectMoIPCall();
-                            }
-                            else {
-                                if (MainActivity.mPSTNController != null) MainActivity.mPSTNController.stopPSTNRingCntThread(); // PSTN 멀티콜 거절시 ring cnt 초기화
+                            } else {
+                                if (MainActivity.mPSTNController != null)
+                                    MainActivity.mPSTNController.stopPSTNRingCntThread(); // PSTN 멀티콜 거절시 ring cnt 초기화
                                 MainActivity.mCallController.stop2ndCallTimer();
                                 doMultiCallReject();
                                 if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT
@@ -841,12 +830,12 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                                 if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT
                                         || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT) {
                                     LOG("[onMultiCallEvent] bRemoteVideoShow [" + bRemoteVideoShow + "]");
-                                    if (bRemoteVideoShow) ctrlAlphaBlending(true); // 세대 월패드에서 내모습 보이기 출력중인 경우 멀티콜 거절시(팝업 종료시) 세대영상 출력
+                                    if (bRemoteVideoShow)
+                                        ctrlAlphaBlending(true); // 세대 월패드에서 내모습 보이기 출력중인 경우 멀티콜 거절시(팝업 종료시) 세대영상 출력
                                     else ctrlAlphaBlending(false);
                                 }
                             }
-                        }
-                        else {
+                        } else {
                             LOG_WARN("[onMultiCallEvent] Invalid eResidenceCallStatus [" + eResidenceCallStatus + "]");
                         }
 
@@ -1023,12 +1012,10 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
 //                    else {
 //                        Log.i(TAG, "[onVideoSet] CallStatus is NOT TALKING!!");
 //                    }
-                }
-                else {
+                } else {
                     Log.w(TAG, "[onVideoSet] Wallpad camera is not enabled!!");
                 }
-            }
-            else {
+            } else {
                 LOG_WARN("[onVideoSet] Not Supported BOARD_TYPE!! [" + ConfigValues.DEVICE_BOARDTYPE + "]");
             }
         } catch (Exception e) {
@@ -1049,9 +1036,8 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                 LOG("[onShowRemoteVideo] bRemoteVideoShow [" + bRemoteVideoShow + "]");
 
                 if (MainActivity.bFFMPEGEnable) {
-                    ((MainActivity)mContext).showRemoteVideo(bShow, true);
-                }
-                else {
+                    ((MainActivity) mContext).showRemoteVideo(bShow, true);
+                } else {
                     CALLOWNER eCallOwner = MainActivity.mCallController.mCallInfo.getCallOwner();
                     CALLSTATUS eMultiCallStatus = MainActivity.mCallController.mCallInfo.getMultiCallStatus();
                     LOG("[onShowRemoteVideo] eCallOwner [" + eCallOwner + "], eMultiCallStatus [" + eMultiCallStatus + "]");
@@ -1059,17 +1045,14 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                         if (eMultiCallStatus == CALLSTATUS.IDLE) {
                             LOG("[onShowRemoteVideo] =========== POPUP X =========== (display remote video)");
                             ctrlAlphaBlending(bShow); // 팝업(서브폰통화, 멀티콜)이 떠있지 않는 경우만 원격지 영상 출력-> 팝업 짤림 (02.12.01 seulki)
-                        }
-                        else {
+                        } else {
                             LOG("[onShowRemoteVideo] =========== POPUP O =========== (do not display remote video)");
                         }
-                    }
-                    else {
+                    } else {
                         LOG("[onShowRemoteVideo] =========== POPUP O =========== (do not display remote video)");
                     }
                 }
-            }
-            else {
+            } else {
                 LOG_WARN("[onShowRemoteVideo] Not Supported BOARD_TYPE!! [" + ConfigValues.DEVICE_BOARDTYPE + "]");
             }
         } catch (Exception e) {
@@ -1094,7 +1077,8 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                     doMultiCallAccept();
                 } else if (nID == ID.POPUP.MUTICALL.ELEMENT.BUTTON.REJECT) {
                     LOG_INFO("[onPopupResult] ID.POPUP.MUTICALL.ELEMENT.BUTTON.REJECT");
-                    if (MainActivity.mPSTNController != null) MainActivity.mPSTNController.stopPSTNRingCntThread(); // PSTN 멀티콜 거절시 ring cnt 초기화
+                    if (MainActivity.mPSTNController != null)
+                        MainActivity.mPSTNController.stopPSTNRingCntThread(); // PSTN 멀티콜 거절시 ring cnt 초기화
                     MainActivity.mCallController.stop2ndCallTimer();
                     doMultiCallReject();
                     if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT
@@ -1106,7 +1090,8 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                     if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT
                             || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT) {
                         LOG("[onPopupResult] bRemoteVideoShow [" + bRemoteVideoShow + "]");
-                        if (bRemoteVideoShow) ctrlAlphaBlending(true); // 세대 월패드에서 내모습 보이기 출력중인 경우 멀티콜 거절시(팝업 종료시) 세대영상 출력
+                        if (bRemoteVideoShow)
+                            ctrlAlphaBlending(true); // 세대 월패드에서 내모습 보이기 출력중인 경우 멀티콜 거절시(팝업 종료시) 세대영상 출력
                         else ctrlAlphaBlending(false);
                     }
                 }
@@ -1133,7 +1118,8 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                      * JEFF, 2020.01.01
                      * 모든 통화에서 멀티콜을 막음
                      */
-                    if (MainActivity.mPSTNController != null) MainActivity.mPSTNController.stopPSTNRingCntThread(); // PSTN 멀티콜 거절시 ring cnt 초기화
+                    if (MainActivity.mPSTNController != null)
+                        MainActivity.mPSTNController.stopPSTNRingCntThread(); // PSTN 멀티콜 거절시 ring cnt 초기화
                     MainActivity.mCallController.stop2ndCallTimer();
                     doMultiCallReject();
                     if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT
@@ -1145,7 +1131,8 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                     if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT
                             || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT) {
                         LOG("[onPopupResult] bRemoteVideoShow [" + bRemoteVideoShow + "]");
-                        if (bRemoteVideoShow) ctrlAlphaBlending(true); // 세대 월패드에서 내모습 보이기 출력중인 경우 멀티콜 거절시(팝업 종료시) 세대영상 출력
+                        if (bRemoteVideoShow)
+                            ctrlAlphaBlending(true); // 세대 월패드에서 내모습 보이기 출력중인 경우 멀티콜 거절시(팝업 종료시) 세대영상 출력
                         else ctrlAlphaBlending(false);
                     }
                 }
@@ -1172,7 +1159,8 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                     if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT
                             || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT) {
                         LOG("[onPopupResult] bRemoteVideoShow [" + bRemoteVideoShow + "]");
-                        if (bRemoteVideoShow) ctrlAlphaBlending(true); // 세대 월패드에서 내모습 보이기 출력중인 경우 멀티콜 거절시(팝업 종료시) 세대영상 출력
+                        if (bRemoteVideoShow)
+                            ctrlAlphaBlending(true); // 세대 월패드에서 내모습 보이기 출력중인 경우 멀티콜 거절시(팝업 종료시) 세대영상 출력
                         else ctrlAlphaBlending(false);
                     }
                 }
@@ -1206,9 +1194,9 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
 
                 try {
                     if (RemoteIDInfo.bRentRoomSelected)
-                        RemoteIDInfo.strIP = Global.makeIPAddress(DeviceType.RENTRESIDENCE, String.valueOf(RemoteIDInfo.nDong),  String.valueOf(RemoteIDInfo.nHo));
+                        RemoteIDInfo.strIP = Global.makeIPAddress(DeviceType.RENTRESIDENCE, String.valueOf(RemoteIDInfo.nDong), String.valueOf(RemoteIDInfo.nHo));
                     else
-                        RemoteIDInfo.strIP = Global.makeIPAddress(DeviceType.RESIDENCE, String.valueOf(RemoteIDInfo.nDong),  String.valueOf(RemoteIDInfo.nHo));
+                        RemoteIDInfo.strIP = Global.makeIPAddress(DeviceType.RESIDENCE, String.valueOf(RemoteIDInfo.nDong), String.valueOf(RemoteIDInfo.nHo));
 
                     RemoteIDInfo.strSIPID = MainActivity.mCallController.makeSIPID(RemoteIDInfo.strIP);
 
@@ -1243,15 +1231,13 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
 */
                 //MainActivity.mCallController.mCallInfo.setCallOwner(eCallOwner);
                 //MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.RESIDENCE, CALLSTATUS.TRYING_CALL);
-            }
-            else if (MainActivity.mCallController.mCallInfo.getRESI() == CALLSTATUS.CALLED) {
+            } else if (MainActivity.mCallController.mCallInfo.getRESI() == CALLSTATUS.CALLED) {
                 MainActivity.mCallController.mCallInfo.setCallOwner(eCallOwner);
                 MainActivity.mCallController.onResidenceEvent(CALLEVENTTYPE.CONNECT_CALL, CALLTYPE.RESIDENCE);
                 MainActivity.mCallController.sendCallStart(CALLTYPE.RESIDENCE, Integer.parseInt(RemoteIDInfo.strDong), Integer.parseInt(RemoteIDInfo.strHo));
                 //MainActivity.mCallController.mCallInfo.setCallOwner(eCallOwner);
                 //MainActivity.mCallController.acceptMoIPCall(false);
-            }
-            else {
+            } else {
                 LOG_INFO("[doTalk] Invalid CALLSTATUS [" + MainActivity.mCallController.mCallInfo.getRESI() + "]");
             }
         } catch (Exception e) {
@@ -1288,7 +1274,7 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                     //MainActivity.mCallController.quitMoIPCall();
                     MainActivity.mCallController.sendCallEnd(CALLTYPE.RESIDENCE, Integer.parseInt(RemoteIDInfo.strDong), Integer.parseInt(RemoteIDInfo.strHo));
                     MainActivity.mCallController.onResidenceEvent(CALLEVENTTYPE.TERMINATE_CALL, CALLTYPE.RESIDENCE);
-                } else if (MainActivity.mCallController.mCallInfo.getRESI() == CALLSTATUS.HOMEVIEW)  {
+                } else if (MainActivity.mCallController.mCallInfo.getRESI() == CALLSTATUS.HOMEVIEW) {
                     //MainActivity.mRemoteCallController.sendCloseRemoteCall();
                     //MainActivity.mCallController.MultiCallScenarioManager();
                     bshowMyVideo = false;
@@ -1409,7 +1395,8 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                 if (MainActivity.mCallController.mCallInfo.getMultiCallAccept()) {
                     // 멀티콜 수락 (통화시작)
                     ((MainActivity) mContext).setMenuBTNEnable(false);
-                    if (ConfigValues.bWallPadCameraEnable) BTN_TALK.setButtonEventOffEnable(R.drawable.btn_residence_call_disabled3);
+                    if (ConfigValues.bWallPadCameraEnable)
+                        BTN_TALK.setButtonEventOffEnable(R.drawable.btn_residence_call_disabled3);
                     else BTN_TALK.setButtonEventOffEnable(R.drawable.btn_residence_call_disabled2);
                     if (ConfigValues.bWallPadCameraEnable) {
                         prepareMyVideo(true);
@@ -1543,14 +1530,12 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                 if (bON) {
                     IMG_VIDEO_MODULE.setImageResource(R.drawable.video_black_back);
                     MainActivity.mCallController.mVideoJNI.setPreviewInfo_V40(116, 85, 240, 160);
-                }
-                else {
+                } else {
                     IMG_VIDEO_MODULE.setImageResource(R.drawable.image_neig);
                     MainActivity.mCallController.mVideoJNI.setPreviewInfo_V40(0, 0, 0, 0);
                 }
                 MainActivity.mIOInterface.ctrlPopupGUI_Resi(!bON, bshowMyVideo);
-            }
-            else {
+            } else {
                 Log.w(TAG, "[ctrlAlphaBlending] Not supported BOARDTYPE!! [" + BOARDTYPE + "]");
             }
         } catch (Exception e) {
@@ -1835,8 +1820,7 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                     BTN_PORTRAIT.setImageResource(R.drawable.btn_residence_me_normal3);
                 }
                 MainActivity.mIOInterface.ctrlPopupGUI_Resi(!bRemoteVideoShow, bshowMyVideo); // 세대통화 시작시 초기화
-            }
-            else {
+            } else {
                 LOG_WARN("[showMyVideo] BTN_PORTRAIT is null!!");
             }
         } catch (Exception e) {
@@ -1983,12 +1967,10 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                         bStatusFlickeringCallLED = !bStatusFlickeringCallLED;
                         sendHandlerMsgDelayed(HANDLERMSG.FLICKER_LED_CALL, 0, 0, 1000);
                     }
-                }
-                else if (MainActivity.mCallController.mCallInfo.getRESI() == CALLSTATUS.TALKING) {
+                } else if (MainActivity.mCallController.mCallInfo.getRESI() == CALLSTATUS.TALKING) {
                     bStatusFlickeringCallLED = true;
                     MainActivity.mIOInterface.ctrlWallPadLED_Call(bStatusFlickeringCallLED);
-                }
-                else {
+                } else {
                     bStatusFlickeringCallLED = false;
                     MainActivity.mIOInterface.ctrlWallPadLED_Call(bStatusFlickeringCallLED);
                     LOG_INFO("[ctrlCallLED] bFlickeringCallLED [" + bFlickeringCallLED + "], bStatusFlickeringCallLED [" + bStatusFlickeringCallLED + "]");
@@ -2074,8 +2056,7 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
             if (SEEKBAR_VOLUME != null) {
                 SEEKBAR_VOLUME.setProgress(ctrlSeekBarThumb(nCurrentVolume));
                 showVolume(nCurrentVolume);
-            }
-            else Log.w(TAG, "[drawVolume] SEEKBAR_VOLUME is null!!");
+            } else Log.w(TAG, "[drawVolume] SEEKBAR_VOLUME is null!!");
         } catch (Exception e) {
             Log.e(TAG, "[Exception] drawVolume()");
             e.printStackTrace();

BIN
WallPadConfig/libs/WallPadAPI.jar


+ 1 - 1
WallPadConfig/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadconfig"
     android:versionCode="01"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
 	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

BIN
WallPadDevService/libs/WallPadAPIforSVC.jar


+ 1 - 1
WallPadDevService/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.artncore.deviceservice"
     android:versionCode="1"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

+ 1 - 9
WallPadDevService/src/main/java/com/artncore/wallpaddevservice/ServiceMain.java

@@ -328,7 +328,6 @@ public class ServiceMain extends Service {
 
 		IntentFilter filter = new IntentFilter();
 		filter.addAction(define.NOTIFY_ACNAME);
-		filter.addAction(define.NOTIFY_CALLAPP_TOP);
 		registerReceiver(mNotifyBR, filter);
 		deviceInitChecker = new DeviceInitChecker();
 	}
@@ -345,17 +344,10 @@ public class ServiceMain extends Service {
 		public void onReceive(Context context, Intent intent) {
 			Log.i(TAG, "[onBrReceive] Intent : " + intent);
 
-			if(intent.getAction().equals(define.NOTIFY_ACNAME))
-			{
+			if (intent.getAction().equals(define.NOTIFY_ACNAME)) {
 				int kind = intent.getIntExtra("KIND", 0);
 				Log.i(TAG, "Receive Notify BR "+ define.NOTIFY_ACNAME + " : " + kind);
 			}
-			else if(intent.getAction().equals(define.NOTIFY_CALLAPP_TOP))
-			{
-				int nCallStatus = intent.getIntExtra("CALLSATUS", 0);
-				Log.i(TAG, "[KSJ] nCallStatus : " + nCallStatus);
-				homeAutomation_Driver.setCallStaus(nCallStatus);
-			}
 
 		}
 	};

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 427 - 341
WallPadDevService/src/main/java/com/artncore/wallpaddevservice/driver/HomeAutomation_New_Controller.java


BIN
WallPadEmergency/libs/WallPadAPI.jar


+ 1 - 1
WallPadEmergency/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpademergency"
     android:versionCode="01"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

BIN
WallPadEnergyCtrl/libs/WallPadAPI.jar


+ 1 - 1
WallPadEnergyCtrl/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadenergyctrl"
     android:versionCode="01"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
 	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

+ 1 - 1
WallPadGlobalButton/src/main/AndroidManifest.xml

@@ -2,7 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadglobalbutton"
     android:versionCode="17"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
 

BIN
WallPadGlobalScreen/libs/WallPadAPI.jar


+ 1 - 1
WallPadGlobalScreen/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadglobalscreen"
     android:versionCode="17"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <uses-feature android:name="android.hardware.camera" />
 

BIN
WallPadHomeCtrl/libs/WallPadAPI.jar


+ 1 - 1
WallPadHomeCtrl/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadhomectrl"
     android:versionCode="17"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
 	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

+ 1 - 1
WallPadKeyBoard/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadkeyboard"
     android:versionCode="17"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <uses-feature android:required="false" android:name="android.hardware.touchscreen"/>
 

BIN
WallPadMain/libs/WallPadAPI.jar


+ 1 - 1
WallPadMain/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadmain"
     android:versionCode="17"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
 	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

+ 10 - 7
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/MainActivity.java

@@ -1491,12 +1491,15 @@ public class MainActivity extends WpadActivity {
             	}
             }
             else if (msg.what == 10) {
-            	// 부트업 실패시 5초 간격으로 보내도록 수정
-            	Log.d(TAG , "NOTIFY_SENDBOOTUP_FAIL Retry!!!!");
-            	Intent Newintent = new Intent();
-				Newintent.setAction(define.NOTIFY_ACNAME);
-				Newintent.putExtra(define.NOTIBR_KIND,Common.DEVICE_BOOTUP_RETRY);
-				sendBroadcast(Newintent);	
+                if (Version.getModelType() != MODEL_TYPE.IHN_1010_I_ALT) {
+                    // IHN-1010-I-ALT는 단지망 연동 버전이 아니므로 device_bootup.request를 전송하지 않는다.
+                    // 부트업 실패시 5초 간격으로 보내도록 수정
+                    Log.d(TAG , "NOTIFY_SENDBOOTUP_FAIL Retry!!!!");
+                    Intent Newintent = new Intent();
+                    Newintent.setAction(define.NOTIFY_ACNAME);
+                    Newintent.putExtra(define.NOTIBR_KIND,Common.DEVICE_BOOTUP_RETRY);
+                    sendBroadcast(Newintent);
+                }
             }
         }
     };
@@ -2537,7 +2540,7 @@ public class MainActivity extends WpadActivity {
                             WallPadiMAPNotifyAPI notify = new WallPadiMAPNotifyAPI(getApplicationContext());
                             notify.SetSocketWaitCount(3000);
                             notify.SetServerIPcfg(strServerIP, nServerPort);
-                            notify.Send_Device_BootUP(getMainVersion(), Setting_Version , svrVersion );
+                            notify.Send_Device_BootUP(getMainVersion(), Setting_Version , svrVersion);
 						}
 					} catch (Exception e) {
 						e.printStackTrace();

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

@@ -2573,10 +2573,14 @@ public class iMapServer extends Service {
 
         mIOInterface = new IOInterface(getApplicationContext(), mWallPadAPI);
 
-		Intent notiIntent = new Intent();
-		notiIntent.setAction(define.NOTIFY_ACNAME);
-		notiIntent.putExtra(define.NOTIBR_KIND, define.NOTIFY_IMAPSERVER_START);
-		getApplicationContext().sendBroadcast(notiIntent);
+        if (Version.getModelType() != MODEL_TYPE.IHN_1010_I_ALT) {
+            // IHN-1010-I-ALT는 네트워크 버전이 아니므로 device_bootup을 전송하지 않는다. (iMapServer service는 부팅과 동시에 자동으로 실행되므로 메인앱에서 실행할 필요가 없음)
+            // 아래 BR은 device_bootup을 전송하기위한 BR임
+            Intent notiIntent = new Intent();
+            notiIntent.setAction(define.NOTIFY_ACNAME);
+            notiIntent.putExtra(define.NOTIBR_KIND, define.NOTIFY_IMAPSERVER_START);
+            getApplicationContext().sendBroadcast(notiIntent);
+        }
 
 		CheckMainStatus();
 

BIN
WallPadOutmodeRun/libs/WallPadAPI.jar


+ 1 - 1
WallPadOutmodeRun/src/main/AndroidManifest.xml

@@ -2,7 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadoutmoderun"
     android:versionCode="1"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

BIN
WallPadSecurity/libs/WallPadAPI.jar


+ 1 - 1
WallPadSecurity/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadsecurity"
     android:versionCode="1"
-    android:versionName="2022.01.06.01">
+    android:versionName="2022.05.12.01">
 
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
   	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Vissa filer visades inte eftersom för många filer har ändrats