Ver Fonte

Merge remote-tracking branch 'origin/master'

jslee(madeinlab) há 3 anos atrás
pai
commit
afc437c2d9
21 ficheiros alterados com 340 adições e 138 exclusões
  1. 1 1
      WallPadCall/src/main/AndroidManifest.xml
  2. 12 1
      WallPadCall/src/main/java/kr/co/icontrols/callengine/engine/CallController.java
  3. 4 0
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/MainActivity.java
  4. 50 8
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/declare/Global.java
  5. 12 7
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Notice_visitor_upload_complete.java
  6. 13 7
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_call_history_delete.java
  7. 13 7
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_call_history_inquiry.java
  8. 13 7
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_call_history_save.java
  9. 13 7
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_check_sip_activation.java
  10. 13 7
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_lobby_capture.java
  11. 13 7
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_lobby_open.java
  12. 12 7
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_start_talking.java
  13. 12 7
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_stop_talking.java
  14. 13 7
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_visitor_access_info.java
  15. 13 7
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_visitor_picture_delete.java
  16. 13 7
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_visitor_picture_inquiry.java
  17. 60 20
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkFront.java
  18. 5 4
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkGuard.java
  19. 32 16
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkLobby.java
  20. 12 1
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkResidence.java
  21. 11 3
      WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/util/iMapServer.java

+ 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="2021.11.05.01">
+    android:versionName="2021.12.16.01">
 
     <!--android:sharedUserId="android.uid.system"-->
     <!--<uses-sdk-->

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

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

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

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

+ 50 - 8
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/declare/Global.java

@@ -1439,14 +1439,55 @@ public final class Global {
         }
     }
 
+    public static String[] getIPadressDongHo()
+    {
+        String dong = "101";
+        String ho = "101";
+        String[] aDeviceName = new String[3];
+
+        String strIPResult = getIPAddress();
+
+        String[] IP_Parse = strIPResult.split("\\.");
+
+        int iDong = Integer.parseInt(IP_Parse[0]);
+
+        if(Integer.parseInt(IP_Parse[1]) < 10)
+        {
+            iDong = iDong * 10;
+        }
+        else if((Integer.parseInt(IP_Parse[1]) > 11) && (Integer.parseInt(IP_Parse[1]) < 100))
+        {
+            iDong = iDong * 100;
+        }
+        else if (Integer.parseInt(IP_Parse[1]) > 99)
+        {
+            iDong = iDong * 1000;
+        }
+
+        iDong = iDong + Integer.parseInt(IP_Parse[1]);
+
+        dong = Integer.toString(((iDong / 100) * 100) + Integer.parseInt(IP_Parse[1]));
+
+        ho = IP_Parse[2] + ZeroPadding_Head(2, IP_Parse[3]);
+
+        aDeviceName[0] = strIPResult;
+        aDeviceName[1] = dong;
+        aDeviceName[2] = ho;
+
+        return aDeviceName;
+    }
+
     public static String getDongString() {
         try {
             String strResult = "";
-            wallpaddbmgr DBMGR = new wallpaddbmgr(mContext);
-            AddressSet Addr = DBMGR.getAddressMGR();
-            DBMGR.closeDB();
-            strResult = Addr.Dong;
+//            wallpaddbmgr DBMGR = new wallpaddbmgr(mContext);
+//            AddressSet Addr = DBMGR.getAddressMGR();
+//            DBMGR.closeDB();
+//            strResult = Addr.Dong;
+            strResult = getIPadressDongHo()[1];
+
             LOG("[getDongString] strResult [" + strResult + "]");
+
             return strResult;
         } catch (RuntimeException re) {
             LogUtil.errorLogInfo("", TAG, re);
@@ -1460,10 +1501,11 @@ public final class Global {
     public static String getHoString() {
         try {
             String strResult = "";
-            wallpaddbmgr DBMGR = new wallpaddbmgr(mContext);
-            AddressSet Addr = DBMGR.getAddressMGR();
-            DBMGR.closeDB();
-            strResult = Addr.Ho;
+//            wallpaddbmgr DBMGR = new wallpaddbmgr(mContext);
+//            AddressSet Addr = DBMGR.getAddressMGR();
+//            DBMGR.closeDB();
+//            strResult = Addr.Ho;
+            strResult = getIPadressDongHo()[2];
             LOG("[getHoString] strResult [" + strResult + "]");
             return strResult;
         } catch (RuntimeException re) {

+ 12 - 7
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Notice_visitor_upload_complete.java

@@ -9,6 +9,8 @@ import com.artncore.wallpadimap.RetProci;
 import com.artncore.wallpadimap.WallPadiMAPClient;
 import com.util.LogUtil;
 
+import kr.co.icontrols.wallpadcall.declare.Global;
+
 public class Notice_visitor_upload_complete extends WallPadiMAPClient {
     String TAG = "Noti_Visit_up_complete";
     String DeviceIP = "NONE";
@@ -29,13 +31,16 @@ public class Notice_visitor_upload_complete extends WallPadiMAPClient {
         try {
             mContext = context;
             super.setContext(mContext);
-            DBMGR = new WallpadStatusData(mContext);
-            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
-            DBMGR.closeDB();
-            //동, 호, ip 정보 저장
-            DeviceIP = Address.IPAddress;
-            DeviceDong = Address.Dong;
-            DeviceHo = Address.Ho;
+//            DBMGR = new WallpadStatusData(mContext);
+//            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
+//            DBMGR.closeDB();
+//            //동, 호, ip 정보 저장
+//            DeviceIP = Address.IPAddress;
+//            DeviceDong = Address.Dong;
+//            DeviceHo = Address.Ho;
+            DeviceIP = Global.getIPadressDongHo()[0];
+            DeviceDong = Global.getIPadressDongHo()[1];
+            DeviceHo = Global.getIPadressDongHo()[2];
 
             //타임아웃 설정
             SetSocketWaitCount(2000);

+ 13 - 7
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_call_history_delete.java

@@ -9,6 +9,8 @@ import com.artncore.wallpadimap.RetProci;
 import com.artncore.wallpadimap.WallPadiMAPClient;
 import com.util.LogUtil;
 
+import kr.co.icontrols.wallpadcall.declare.Global;
+
 public class Request_call_history_delete extends WallPadiMAPClient {
     String TAG = "Request_call_history_delete";
     String DeviceIP = "NONE";
@@ -29,13 +31,17 @@ public class Request_call_history_delete extends WallPadiMAPClient {
         try {
             mContext = context;
             super.setContext(mContext);
-            DBMGR = new WallpadStatusData(mContext);
-            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
-            DBMGR.closeDB();
-            //동, 호, ip 정보 저장
-            DeviceIP = Address.IPAddress;
-            DeviceDong = Address.Dong;
-            DeviceHo = Address.Ho;
+//            DBMGR = new WallpadStatusData(mContext);
+//            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
+//            DBMGR.closeDB();
+//            //동, 호, ip 정보 저장
+//            DeviceIP = Address.IPAddress;
+//            DeviceDong = Address.Dong;
+//            DeviceHo = Address.Ho;
+
+            DeviceIP = Global.getIPadressDongHo()[0];
+            DeviceDong = Global.getIPadressDongHo()[1];
+            DeviceHo = Global.getIPadressDongHo()[2];
 
             //타임아웃 설정
             SetSocketWaitCount(2000);

+ 13 - 7
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_call_history_inquiry.java

@@ -9,6 +9,8 @@ import com.artncore.wallpadimap.RetProci;
 import com.artncore.wallpadimap.WallPadiMAPClient;
 import com.util.LogUtil;
 
+import kr.co.icontrols.wallpadcall.declare.Global;
+
 public class Request_call_history_inquiry extends WallPadiMAPClient {
     String TAG = "Request_call_history_inquiry";
     String DeviceIP = "NONE";
@@ -29,13 +31,17 @@ public class Request_call_history_inquiry extends WallPadiMAPClient {
         try {
             mContext = context;
             super.setContext(mContext);
-            DBMGR = new WallpadStatusData(mContext);
-            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
-            DBMGR.closeDB();
-            //동, 호, ip 정보 저장
-            DeviceIP = Address.IPAddress;
-            DeviceDong = Address.Dong;
-            DeviceHo = Address.Ho;
+//            DBMGR = new WallpadStatusData(mContext);
+//            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
+//            DBMGR.closeDB();
+//            //동, 호, ip 정보 저장
+//            DeviceIP = Address.IPAddress;
+//            DeviceDong = Address.Dong;
+//            DeviceHo = Address.Ho;
+
+            DeviceIP = Global.getIPadressDongHo()[0];
+            DeviceDong = Global.getIPadressDongHo()[1];
+            DeviceHo = Global.getIPadressDongHo()[2];
 
             //타임아웃 설정
             SetSocketWaitCount(2000);

+ 13 - 7
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_call_history_save.java

@@ -9,6 +9,8 @@ import com.artncore.wallpadimap.RetProci;
 import com.artncore.wallpadimap.WallPadiMAPClient;
 import com.util.LogUtil;
 
+import kr.co.icontrols.wallpadcall.declare.Global;
+
 public class Request_call_history_save extends WallPadiMAPClient {
     String TAG = "Request_call_history_save";
     String DeviceIP = "NONE";
@@ -29,13 +31,17 @@ public class Request_call_history_save extends WallPadiMAPClient {
         try {
             mContext = context;
             super.setContext(mContext);
-            DBMGR = new WallpadStatusData(mContext);
-            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
-            DBMGR.closeDB();
-            //동, 호, ip 정보 저장
-            DeviceIP = Address.IPAddress;
-            DeviceDong = Address.Dong;
-            DeviceHo = Address.Ho;
+//            DBMGR = new WallpadStatusData(mContext);
+//            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
+//            DBMGR.closeDB();
+//            //동, 호, ip 정보 저장
+//            DeviceIP = Address.IPAddress;
+//            DeviceDong = Address.Dong;
+//            DeviceHo = Address.Ho;
+
+            DeviceIP = Global.getIPadressDongHo()[0];
+            DeviceDong = Global.getIPadressDongHo()[1];
+            DeviceHo = Global.getIPadressDongHo()[2];
 
             //타임아웃 설정
             SetSocketWaitCount(2000);

+ 13 - 7
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_check_sip_activation.java

@@ -9,6 +9,8 @@ import com.artncore.wallpadimap.RetProci;
 import com.artncore.wallpadimap.WallPadiMAPClient;
 import com.util.LogUtil;
 
+import kr.co.icontrols.wallpadcall.declare.Global;
+
 public class Request_check_sip_activation extends WallPadiMAPClient {
     String TAG = "Reqst_chck_sip_activ";
     String DeviceIP = "NONE";
@@ -29,13 +31,17 @@ public class Request_check_sip_activation extends WallPadiMAPClient {
         try {
             mContext = context;
             super.setContext(mContext);
-            DBMGR = new WallpadStatusData(mContext);
-            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
-            DBMGR.closeDB();
-            //동, 호, ip 정보 저장
-            DeviceIP = Address.IPAddress;
-            DeviceDong = Address.Dong;
-            DeviceHo = Address.Ho;
+//            DBMGR = new WallpadStatusData(mContext);
+//            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
+//            DBMGR.closeDB();
+//            //동, 호, ip 정보 저장
+//            DeviceIP = Address.IPAddress;
+//            DeviceDong = Address.Dong;
+//            DeviceHo = Address.Ho;
+
+            DeviceIP = Global.getIPadressDongHo()[0];
+            DeviceDong = Global.getIPadressDongHo()[1];
+            DeviceHo = Global.getIPadressDongHo()[2];
 
             //타임아웃 설정
             SetSocketWaitCount(2000);

+ 13 - 7
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_lobby_capture.java

@@ -9,6 +9,8 @@ import com.artncore.wallpadimap.RetProci;
 import com.artncore.wallpadimap.WallPadiMAPClient;
 import com.util.LogUtil;
 
+import kr.co.icontrols.wallpadcall.declare.Global;
+
 public class Request_lobby_capture extends WallPadiMAPClient {
     String TAG = "Request_lobby_open";
     String DeviceIP = "NONE";
@@ -29,13 +31,17 @@ public class Request_lobby_capture extends WallPadiMAPClient {
         try {
             mContext = context;
             super.setContext(mContext);
-            DBMGR = new WallpadStatusData(mContext);
-            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
-            DBMGR.closeDB();
-            //동, 호, ip 정보 저장
-            DeviceIP = Address.IPAddress;
-            DeviceDong = Address.Dong;
-            DeviceHo = Address.Ho;
+//            DBMGR = new WallpadStatusData(mContext);
+//            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
+//            DBMGR.closeDB();
+//            //동, 호, ip 정보 저장
+//            DeviceIP = Address.IPAddress;
+//            DeviceDong = Address.Dong;
+//            DeviceHo = Address.Ho;
+
+            DeviceIP = Global.getIPadressDongHo()[0];
+            DeviceDong = Global.getIPadressDongHo()[1];
+            DeviceHo = Global.getIPadressDongHo()[2];
 
             //타임아웃 설정
             SetSocketWaitCount(2000);

+ 13 - 7
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_lobby_open.java

@@ -9,6 +9,8 @@ import com.artncore.wallpadimap.RetProci;
 import com.artncore.wallpadimap.WallPadiMAPClient;
 import com.util.LogUtil;
 
+import kr.co.icontrols.wallpadcall.declare.Global;
+
 public class Request_lobby_open extends WallPadiMAPClient {
     String TAG = "Request_lobby_open";
     String DeviceIP = "NONE";
@@ -29,13 +31,17 @@ public class Request_lobby_open extends WallPadiMAPClient {
         try {
             mContext = context;
             super.setContext(mContext);
-            DBMGR = new WallpadStatusData(mContext);
-            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
-            DBMGR.closeDB();
-            //동, 호, ip 정보 저장
-            DeviceIP = Address.IPAddress;
-            DeviceDong = Address.Dong;
-            DeviceHo = Address.Ho;
+//            DBMGR = new WallpadStatusData(mContext);
+//            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
+//            DBMGR.closeDB();
+//            //동, 호, ip 정보 저장
+//            DeviceIP = Address.IPAddress;
+//            DeviceDong = Address.Dong;
+//            DeviceHo = Address.Ho;
+
+            DeviceIP = Global.getIPadressDongHo()[0];
+            DeviceDong = Global.getIPadressDongHo()[1];
+            DeviceHo = Global.getIPadressDongHo()[2];
 
             //타임아웃 설정
             SetSocketWaitCount(2000);

+ 12 - 7
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_start_talking.java

@@ -10,6 +10,7 @@ import com.artncore.wallpadimap.RetProci;
 import com.artncore.wallpadimap.WallPadiMAPClient;
 
 import kr.co.icontrols.wallpadcall.MainActivity;
+import kr.co.icontrols.wallpadcall.declare.Global;
 
 public class Request_start_talking extends WallPadiMAPClient {
     String TAG = "Request_start_talking";
@@ -31,13 +32,17 @@ public class Request_start_talking extends WallPadiMAPClient {
         try {
             mContext = context;
             super.setContext(mContext);
-            DBMGR = new WallpadStatusData(mContext);
-            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
-            DBMGR.closeDB();
-            //동, 호, ip 정보 저장
-            DeviceIP = Address.IPAddress;
-            DeviceDong = Address.Dong;
-            DeviceHo = Address.Ho;
+//            DBMGR = new WallpadStatusData(mContext);
+//            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
+//            DBMGR.closeDB();
+//            //동, 호, ip 정보 저장
+//            DeviceIP = Address.IPAddress;
+//            DeviceDong = Address.Dong;
+//            DeviceHo = Address.Ho;
+
+            DeviceIP = Global.getIPadressDongHo()[0];
+            DeviceDong = Global.getIPadressDongHo()[1];
+            DeviceHo = Global.getIPadressDongHo()[2];
 
             //타임아웃 설정
             SetSocketWaitCount(2000);

+ 12 - 7
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_stop_talking.java

@@ -9,6 +9,7 @@ import com.artncore.wallpadimap.RetProci;
 import com.artncore.wallpadimap.WallPadiMAPClient;
 
 import kr.co.icontrols.wallpadcall.MainActivity;
+import kr.co.icontrols.wallpadcall.declare.Global;
 
 public class Request_stop_talking extends WallPadiMAPClient {
     String TAG = "Request_stop_talking";
@@ -30,13 +31,17 @@ public class Request_stop_talking extends WallPadiMAPClient {
         try {
             mContext = context;
             super.setContext(mContext);
-            DBMGR = new WallpadStatusData(mContext);
-            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
-            DBMGR.closeDB();
-            //동, 호, ip 정보 저장
-            DeviceIP = Address.IPAddress;
-            DeviceDong = Address.Dong;
-            DeviceHo = Address.Ho;
+//            DBMGR = new WallpadStatusData(mContext);
+//            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
+//            DBMGR.closeDB();
+//            //동, 호, ip 정보 저장
+//            DeviceIP = Address.IPAddress;
+//            DeviceDong = Address.Dong;
+//            DeviceHo = Address.Ho;
+
+            DeviceIP = Global.getIPadressDongHo()[0];
+            DeviceDong = Global.getIPadressDongHo()[1];
+            DeviceHo = Global.getIPadressDongHo()[2];
 
             //타임아웃 설정
             SetSocketWaitCount(2000);

+ 13 - 7
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_visitor_access_info.java

@@ -9,6 +9,8 @@ import com.artncore.wallpadimap.RetProci;
 import com.artncore.wallpadimap.WallPadiMAPClient;
 import com.util.LogUtil;
 
+import kr.co.icontrols.wallpadcall.declare.Global;
+
 public class Request_visitor_access_info extends WallPadiMAPClient {
     String TAG = "Req_visitor_acs_info";
     String DeviceIP = "NONE";
@@ -29,13 +31,17 @@ public class Request_visitor_access_info extends WallPadiMAPClient {
         try {
             mContext = context;
             super.setContext(mContext);
-            DBMGR = new WallpadStatusData(mContext);
-            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
-            DBMGR.closeDB();
-            //동, 호, ip 정보 저장
-            DeviceIP = Address.IPAddress;
-            DeviceDong = Address.Dong;
-            DeviceHo = Address.Ho;
+//            DBMGR = new WallpadStatusData(mContext);
+//            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
+//            DBMGR.closeDB();
+//            //동, 호, ip 정보 저장
+//            DeviceIP = Address.IPAddress;
+//            DeviceDong = Address.Dong;
+//            DeviceHo = Address.Ho;
+
+            DeviceIP = Global.getIPadressDongHo()[0];
+            DeviceDong = Global.getIPadressDongHo()[1];
+            DeviceHo = Global.getIPadressDongHo()[2];
 
             //타임아웃 설정
             SetSocketWaitCount(2000);

+ 13 - 7
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_visitor_picture_delete.java

@@ -9,6 +9,8 @@ import com.artncore.wallpadimap.RetProci;
 import com.artncore.wallpadimap.WallPadiMAPClient;
 import com.util.LogUtil;
 
+import kr.co.icontrols.wallpadcall.declare.Global;
+
 public class Request_visitor_picture_delete extends WallPadiMAPClient {
     String TAG = "Request_visitor_picture_delete";
     String DeviceIP = "NONE";
@@ -29,13 +31,17 @@ public class Request_visitor_picture_delete extends WallPadiMAPClient {
         try {
             mContext = context;
             super.setContext(mContext);
-            DBMGR = new WallpadStatusData(mContext);
-            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
-            DBMGR.closeDB();
-            //동, 호, ip 정보 저장
-            DeviceIP = Address.IPAddress;
-            DeviceDong = Address.Dong;
-            DeviceHo = Address.Ho;
+//            DBMGR = new WallpadStatusData(mContext);
+//            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
+//            DBMGR.closeDB();
+//            //동, 호, ip 정보 저장
+//            DeviceIP = Address.IPAddress;
+//            DeviceDong = Address.Dong;
+//            DeviceHo = Address.Ho;
+
+            DeviceIP = Global.getIPadressDongHo()[0];
+            DeviceDong = Global.getIPadressDongHo()[1];
+            DeviceHo = Global.getIPadressDongHo()[2];
 
             //타임아웃 설정
             SetSocketWaitCount(2000);

+ 13 - 7
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/imap/Request_visitor_picture_inquiry.java

@@ -9,6 +9,8 @@ import com.artncore.wallpadimap.RetProci;
 import com.artncore.wallpadimap.WallPadiMAPClient;
 import com.util.LogUtil;
 
+import kr.co.icontrols.wallpadcall.declare.Global;
+
 public class Request_visitor_picture_inquiry extends WallPadiMAPClient {
     String TAG = "Request_visitor_picture_inquiry";
     String DeviceIP = "NONE";
@@ -29,13 +31,17 @@ public class Request_visitor_picture_inquiry extends WallPadiMAPClient {
         try {
             mContext = context;
             super.setContext(mContext);
-            DBMGR = new WallpadStatusData(mContext);
-            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
-            DBMGR.closeDB();
-            //동, 호, ip 정보 저장
-            DeviceIP = Address.IPAddress;
-            DeviceDong = Address.Dong;
-            DeviceHo = Address.Ho;
+//            DBMGR = new WallpadStatusData(mContext);
+//            AddressSet Address = DBMGR.getAddressMGR(); //DB에서 동호 정보 받아옴
+//            DBMGR.closeDB();
+//            //동, 호, ip 정보 저장
+//            DeviceIP = Address.IPAddress;
+//            DeviceDong = Address.Dong;
+//            DeviceHo = Address.Ho;
+
+            DeviceIP = Global.getIPadressDongHo()[0];
+            DeviceDong = Global.getIPadressDongHo()[1];
+            DeviceHo = Global.getIPadressDongHo()[2];
 
             //타임아웃 설정
             SetSocketWaitCount(2000);

+ 60 - 20
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkFront.java

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

+ 5 - 4
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkGuard.java

@@ -1394,10 +1394,11 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
 
     private String getDongString() {
         try {
-            wallpaddbmgr DBMGR = new wallpaddbmgr(mContext);
-            AddressSet Addr = DBMGR.getAddressMGR();
-            DBMGR.closeDB();
-            String strResult = Addr.Dong;
+//            wallpaddbmgr DBMGR = new wallpaddbmgr(mContext);
+//            AddressSet Addr = DBMGR.getAddressMGR();
+//            DBMGR.closeDB();
+//            String strResult = Addr.Dong;
+            String strResult = Global.getIPadressDongHo()[1];
             LOG("[getDongString] strResult [" + strResult + "]");
             return strResult;
         } catch (RuntimeException re) {

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

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

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

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

+ 11 - 3
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/util/iMapServer.java

@@ -138,7 +138,7 @@ import static com.artncore.wallpadapi.SdbAPI.EM_INDEX_LIVING;
 
 public class iMapServer extends Service {
     private String TAG = "iMapServer";
-
+//
     static final int EVENTTIMELIMITE = 2000;
     iMapSverSocket SvrSock;
     int port = 10000;
@@ -15822,6 +15822,7 @@ public class iMapServer extends Service {
     int MAX_WALLPADCALL_LIVE_CNT = 2;
     int nWallPadCallACKCnt = MAX_WALLPADCALL_LIVE_CNT;   // MAX_WALLPADCALL_LIVE_CNT회 이상 응답이 없으면 WallPadCall이 종료된것으로 판단한다.
     public static boolean bWallPadCallLive = false;   // WallPadCall의 Live 상태를 나타낸다.
+    public static boolean bWallPadCallLive_old = false;
     public static boolean m_bWallpadCallScreen = false;
     int nWallPadCallPID = 0;   // WallPadCall을 강제 종료하기 위한 PID (WallPadCall로부터 BR로 수신한다.)
     Handler handlerCheckWallPadCallLive = new Handler() {
@@ -15846,9 +15847,16 @@ public class iMapServer extends Service {
                 Common.bWallPadCallLive = bWallPadCallLive;
             }
 
-            if (bWallPadCallLive != getCallAppRunning()) {
-                setCallAppRunning(bWallPadCallLive);
+
+            if (bWallPadCallLive != bWallPadCallLive_old) {
+
+                if (bWallPadCallLive != getCallAppRunning()) {
+                    //Log.i(TAG, "[sendWallPadCallLiveBR_Request] bWallPadCallLive [" + bWallPadCallLive + "]");
+                    setCallAppRunning(bWallPadCallLive);
+                }
             }
+
+            bWallPadCallLive_old = bWallPadCallLive;
             //Log.i(TAG, "[sendWallPadCallLiveBR_Request] bWallPadCallLive [" + bWallPadCallLive + "]");
         } catch (RuntimeException re) {
             LogUtil.errorLogInfo("", TAG, re);