浏览代码

[WallPadCall]
1. App Ver. 갱신
- 2022.05.12.01
2. 최신 WallPadAPI 적용
- API Ver.: 2022.05.12.01
- 무인경비 단자대 연동 드라이버 API 기능 개선
3. 통화앱 실행상태 공유기능 변경
- 기존: 통화앱 실행/종료시, BR로 무인경비 드라이버에 실행/종료 상태 전송
- 변경: 무인경비 드라이버에서 월패드 통화앱이 전송하는 Live 응답 BR을 수신하여 자동으로 처리
- 변경 사유: 통화앱이 비정상으로 종료되는 경우, BR을 전송하지 못하여 드라이버는 통화앱이 계속 실행중인 상태로 알고있으므로 호출이 무인경비 호출이 수신되지 않는 증상 개선
4. 통화앱 종료시 일정시간(1초) 통화수신 거절하도록 변경
- 통화앱이 종료절차에 돌입시, 통화관련 이벤트 수신을 처리하지 못하므로 통화앱 종료시 일정시간 호출수신을 거절한다.
5. 경비실 통화 화면 시나리오 개선
- 경비실 통화화면의 버튼을 통화 상태와 동기화 하여, 시나리오에 맞지 않는 버튼은 비활성화 한다.
> 대기중, 호출 수신중: 통화 활성화, 종료 활성화
> 호출 송신중, 통화중: 통화 비활성화, 종료 활성화
> 상태천이 발생중: 통화중 비활성화, 종료 비활성화
6. 타임아웃시 통화종료 처리 개선
- 호출 송신/수신 중, 통화중에 대한 타임아웃시 통화 무인경비 종료 메시지를 전송한다.
7. 로비 통화 화면 시나리오 개선
- 로비 호출 수신중, 사진저장 버튼을 활성화 한다.
- 문열림시 문열림 멘트가 중간에 잘리는 증상 개선

[WallPadAPI]
1. API Ver. 갱신
- 2022.05.12.01
2. 무인경비 단자대 연동 드라이버 기능 개선
- BR 명칭 직관적으로 통일
> 기존
. 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_ACTION_NAME = "HOME_AUTOMATION_CALL_STATUS";
. public static final String BR_ACTION_NAME = "HOME_AUTOMATION_EMERGENCY";
. public static final String BR_ACTION_NAME = "HOME_AUTOMATION_ETC";
> 변경
. 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";
. public static final String BR_HOME_AUTOMATION_CALL_STATUS = "BR_HOME_AUTOMATION_CALL_STATUS";
. public static final String BR_HOME_AUTOMATION_EMERGENCY = "BR_HOME_AUTOMATION_EMERGENCY";
. public static final String BR_HOME_AUTOMATION_ETC = "BR_HOME_AUTOMATION_ETC";
- 로그 출력 메시지 정리
- WallPadCallLive 플래그 추가
> 월패드 통화앱 실행여부 플래그 설정기능 추가
. public void setWallPadCallLive(boolean bCallWAppLive)
> 해당 플래그를 참조하여 신규콜이 수신된 경우 통화앱 실행 여부를 결정한다.

Jeffrey Nam 3 年之前
父节点
当前提交
192e9af30a

二进制
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();