Ver Fonte

[WallPadConfig]
1. App Ver. 갱신
- 2022.05.23.01
2. 모바일 기기 정보 동기화 작업
[WallPadHomeCtrl]
1. App Ver. 갱신
- 2022.05.23.01
2. 코드 정리
[WallPadMultiControlService]
1. App Ver. 갱신
- 2022.05.23.01
2. 모바일 기기 정보 동기화 작업

jslee(madeinlab) há 2 anos atrás
pai
commit
27b86b370c
23 ficheiros alterados com 157 adições e 63 exclusões
  1. 1 1
      WallPadConfig/src/main/AndroidManifest.xml
  2. 0 21
      WallPadConfig/src/main/java/kr/co/icontrols/wallpadconfig/MainActivity.java
  3. 1 1
      WallPadConfig/src/main/java/kr/co/icontrols/wallpadconfig/screen/ConfigMobileDeviceAddScreen.java
  4. 1 1
      WallPadConfig/src/main/java/kr/co/icontrols/wallpadconfig/screen/ConfigPwChangeMainScreen.java
  5. 108 0
      WallPadConfig/src/main/java/kr/co/icontrols/wallpadconfig/screen/PopupMobileSync.java
  6. BIN
      WallPadConfig/src/main/res/drawable-ldpi/icon_sync_1.png
  7. BIN
      WallPadConfig/src/main/res/drawable-ldpi/popup_bg_a.png
  8. BIN
      WallPadConfig/src/main/res/drawable-ldpi/topbar_icon_sync_disabled.png
  9. BIN
      WallPadConfig/src/main/res/drawable-ldpi/topbar_icon_sync_normal.png
  10. BIN
      WallPadConfig/src/main/res/drawable-ldpi/topbar_icon_sync_pressed.png
  11. 1 1
      WallPadHomeCtrl/src/main/AndroidManifest.xml
  12. 2 8
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/MainActivity.java
  13. 0 3
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_aircon/KnxSystemAirconMainScreen.java
  14. 0 4
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_aircon/KnxSystemAirconPopupScreen.java
  15. 0 3
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_aircon/SystemAirconPopupScreen.java
  16. 0 3
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/KnxSystemAirconPopupTestScreen.java
  17. 0 3
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/SystemAirconPopupTestScreen.java
  18. 0 2
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/SystemAirconTestScreen.java
  19. 0 2
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_purity/PurityPopupScreen.java
  20. 1 1
      WallPadMultiControlService/src/main/AndroidManifest.xml
  21. 1 0
      WallPadMultiControlService/src/main/java/kr/co/icontrols/wallpadmulticontrolservice/Common.java
  22. 23 9
      WallPadMultiControlService/src/main/java/kr/co/icontrols/wallpadmulticontrolservice/DataSenderService.java
  23. 18 0
      WallPadMultiControlService/src/main/java/kr/co/icontrols/wallpadmulticontrolservice/data/MobileSyncData.java

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

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

+ 0 - 21
WallPadConfig/src/main/java/kr/co/icontrols/wallpadconfig/MainActivity.java

@@ -1281,12 +1281,6 @@ public class MainActivity extends WpadActivity
                     super.setCurrentScreen(configPwChangeMainScreen);
                     break;
 
-                /*case API_Menu.SubMenuConfig.SkinChange:
-                    SetTitleText(API_Menu.SubMenuConfig.Name_SkinChange);
-                    configGLESkinChangeMainScreen = new ConfigSkinChangeScreen(this, ScreenLayout, mWallPadAPI, OPERATION_MODE);
-                    super.setCurrentScreen(configGLESkinChangeMainScreen);
-                    break;*/
-
                 case API_Menu.SubMenuConfig.MorningCall:
                     SetTitleText(API_Menu.SubMenuConfig.Name_MorningCall);
                     configMoningCallMainScreen = new ConfigMoningCallMainScreen(this, ScreenLayout, mWallPadAPI, OPERATION_MODE);
@@ -1319,20 +1313,6 @@ public class MainActivity extends WpadActivity
                     super.setCurrentScreen(configTimeSetScreen);
                     break;
 
-                /*case API_Menu.SubMenuConfig.NoiseLog:
-                    SetTitleText(API_Menu.SubMenuConfig.Name_NoiseLog);
-                    configNoiseLogMainScreen = new ConfigNoiseLogMainScreen(this, ScreenLayout, mWallPadAPI, OPERATION_MODE);
-                    // setTopBackBtnVisible(true);
-                    super.setCurrentScreen(configNoiseLogMainScreen);
-                    break;*/
-
-                /*case API_Menu.SubMenuConfig.HandicappedPerson:
-                    SetTitleText(API_Menu.SubMenuConfig.Name_Handicapped);
-                    configHandicappedModeScreen = new ConfigHandicappedModeScreen(this, ScreenLayout, mWallPadAPI, OPERATION_MODE);
-                   // setTopBackBtnVisible(true);
-                    super.setCurrentScreen(configHandicappedModeScreen);
-                    break;*/
-
                 case API_Menu.SubMenuConfig.MobileDeviceReg:
                     SetTitleText(API_Menu.SubMenuConfig.Name_MobileDeviceReg);
                     configMobileDeviceAddScreen = new ConfigMobileDeviceAddScreen(this, ScreenLayout, mWallPadAPI, OPERATION_MODE);
@@ -2151,7 +2131,6 @@ public class MainActivity extends WpadActivity
         }
     };
 
-
     public void requestMultiControl(Handler handler, int menu, int reason, int position, String value1, String valueID) {
         if(position!=ho) {
             ClientThread thread = new ClientThread(handler, menu, reason, position, value1, valueID);

+ 1 - 1
WallPadConfig/src/main/java/kr/co/icontrols/wallpadconfig/screen/ConfigMobileDeviceAddScreen.java

@@ -351,7 +351,7 @@ public class ConfigMobileDeviceAddScreen extends WpadScreen
                         String response = bundle.getString("response");
                         JSONObject jsonObject = new JSONObject(response);
                         ResultData resultData = gson.fromJson(jsonObject.toString(), ResultData.class);
-                        if(resultData.getType().equals("controlResponse")&&resultData.getResult().equals("ok")) {
+                        if(resultData.getType().equals("mobileResponse")&&resultData.getResult().equals("ok")) {
                             //제어 명령을 내리고 제대로 응답이 오면 필요시 상태를 다시 조회해서 UI 갱신하도록 한다.
                         }
                     } catch (JSONException e) {

+ 1 - 1
WallPadConfig/src/main/java/kr/co/icontrols/wallpadconfig/screen/ConfigPwChangeMainScreen.java

@@ -163,7 +163,7 @@ public class ConfigPwChangeMainScreen extends WpadScreen{
 						String response = bundle.getString("response");
 						JSONObject jsonObject = new JSONObject(response);
 						ResultData resultData = gson.fromJson(jsonObject.toString(), ResultData.class);
-						if(resultData.getType().equals("controlResponse")&&resultData.getResult().equals("ok")) {
+						if(resultData.getType().equals("passwordResponse")&&resultData.getResult().equals("ok")) {
 							//제어 명령을 내리고 제대로 응답이 오면 상태를 다시 조회해서 UI 갱신하도록 한다.
 						}
 					} catch (JSONException e) {

+ 108 - 0
WallPadConfig/src/main/java/kr/co/icontrols/wallpadconfig/screen/PopupMobileSync.java

@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2014 Android WallPad Project
+ *
+ * FileName  : PopupMobileSync.java
+ * Project   : 성북동 프로젝트
+ */
+
+package kr.co.icontrols.wallpadconfig.screen;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Color;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.RelativeLayout;
+
+import kr.co.icontrols.wallpadconfig.PopupActivity;
+import kr.co.icontrols.wallpadconfig.R;
+import kr.co.icontrols.wallpadconfig.declare.Common;
+import kr.co.icontrols.wallpadconfig.declare.ID;
+import kr.co.icontrols.wallpadsupport.WpadImageView;
+import kr.co.icontrols.wallpadsupport.WpadImageView.TOUCH_KIND;
+import kr.co.icontrols.wallpadsupport.WpadScreen;
+import kr.co.icontrols.wallpadsupport.WpadSound.SND;
+import kr.co.icontrols.wallpadsupport.WpadTextView;
+
+@SuppressLint("ViewConstructor")
+public class PopupMobileSync extends WpadScreen {
+    String TAG = "PopupAsCall";
+
+    // [Image]
+    WpadImageView Background, popupIcon, test;
+
+    // [Button]
+    WpadImageView OkBtn, CancelBtn, CloseBtn;
+
+    // [Text]
+    WpadTextView TitleText, Text1;
+
+    // [Variables]
+
+    public PopupMobileSync(Context context, RelativeLayout layout) {
+        super(context, layout);
+        Log.d(TAG, "[START - Screen] --------------------------------------------");
+        Background = new WpadImageView(context, TOUCH_KIND.NONE, 990, 680, R.drawable.popup_bg_a, 0, ID.popupMobileSync.image.BACKGROUND);
+        ViewRegistration(layout, Background, Common.PopupNomalMarginLEFT(145), Common.PopupNomalMarginTOP(60));
+
+        TitleText = new WpadTextView(context, false, 981, 90, Gravity.CENTER, Color.WHITE, Common.fontsize._46, true, ID.popupMobileSync.text.TITLE);
+        ViewRegistration(layout, TitleText, Common.PopupNomalMarginLEFT(145), Common.PopupNomalMarginTOP(60));
+        TitleText.setText("모바일기기 동기화");
+
+        OkBtn = new WpadImageView(context, TOUCH_KIND.BUTTON, 360, 80, R.drawable.popup_but_ok, R.drawable.popup_but_ok_p, ID.popupMobileSync.button.OK);
+        ViewRegistration(layout, OkBtn, Common.PopupNomalMarginLEFT(281), Common.PopupNomalMarginTOP(637));
+        CancelBtn = new WpadImageView(context, TOUCH_KIND.BUTTON, 360, 80, R.drawable.but_popup_cancel, R.drawable.but_popup_cancel_p, ID.popupMobileSync.button.CANCEL);
+        ViewRegistration(layout, CancelBtn, Common.PopupNomalMarginLEFT(651), Common.PopupNomalMarginTOP(637));
+        CloseBtn = new WpadImageView(context, TOUCH_KIND.BUTTON, 80, 80, R.drawable.topbar_icon_close_normal, R.drawable.topbar_icon_close_pressed, ID.popupMobileSync.button.CLOSE);
+        ViewRegistration(layout, CloseBtn, Common.PopupNomalMarginLEFT(1048), Common.PopupNomalMarginTOP(67));
+
+
+
+        //test = new WpadImageView(context, TOUCH_KIND.NONE, 990, 260, R.drawable.add_notice_bgr, 0, ID.popupMobileSync.image.IMAGE);
+        //ViewRegistration(layout, test, Common.PopupNomalMarginLEFT(147), Common.PopupNomalMarginTOP(152));
+
+        Text1 = new WpadTextView(context, false, 990, 260, Gravity.CENTER, Color.WHITE, Common.fontsize._46, true, ID.popupMobileSync.text.TEXT1);
+        ViewRegistration(layout, Text1, Common.PopupAlarmMarginLEFT(147), Common.PopupNomalMarginTOP(160));
+        Text1.setText("모든 월패드에 등록된 모바일 정보는\n해당 월패드 기준으로 동기화됩니다.\n동기화 하시겠습니까?");
+
+        popupIcon = new WpadImageView(context, TOUCH_KIND.NONE, 180, 180, R.drawable.icon_sync_1, 0, ID.popupMobileSync.image.IMAGE);
+        ViewRegistration(layout, popupIcon, Common.PopupNomalMarginLEFT(556), Common.PopupNomalMarginTOP(422));
+    }
+
+    @Override
+    protected void onClose() {
+        super.onClose();
+        Log.d(TAG, "[END   - Screen] ********************************************");
+    }
+
+    @Override
+    protected void onTouchEvent(View v, MotionEvent event) {
+        super.onTouchEvent(v, event);
+
+        int TargetId = v.getId();
+        int MoveEvent = event.getAction();
+
+        if (MoveEvent == MotionEvent.ACTION_UP) {
+            if (TargetId == ID.popupMobileSync.button.OK) {
+                Sound().Play(SND.effect.TOUCH_LATCHED);
+                Log.d(TAG, "OK BUTTON !!!");
+                StartSync();
+            } else if (TargetId == ID.popupMobileSync.button.CANCEL || TargetId == ID.popupMobileSync.button.CLOSE) {
+                Sound().Play(SND.effect.TOUCH_LATCHED);
+                ((PopupActivity) (super.getContext())).finish();
+            }
+        }
+    }
+
+    /**
+     * 모바일 기기 등록 동기화를 MainActivity 에서 수행하도록 한다.
+     */
+    private void StartSync() {
+        Intent intent = new Intent();
+        ((PopupActivity) (super.getContext())).setResult(ID.popupMobileSync.ResultCode.OK, intent);
+        super.finish();
+    }
+}

BIN
WallPadConfig/src/main/res/drawable-ldpi/icon_sync_1.png


BIN
WallPadConfig/src/main/res/drawable-ldpi/popup_bg_a.png


BIN
WallPadConfig/src/main/res/drawable-ldpi/topbar_icon_sync_disabled.png


BIN
WallPadConfig/src/main/res/drawable-ldpi/topbar_icon_sync_normal.png


BIN
WallPadConfig/src/main/res/drawable-ldpi/topbar_icon_sync_pressed.png


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

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

+ 2 - 8
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/MainActivity.java

@@ -572,9 +572,6 @@ public class MainActivity extends WpadActivity {
 		nDistributionPanelType = wds.Get_DistributionPannelType_Info();
 		wds.closeDB();
 
-		//for test
-		//nDistributionPanelType = Version.DISTRIBUTION_MODEL.KNX_DIST;
-
 		if (gateway == Version.GATEWAY_MODEL.IGW_200) {
 			Log.i(TAG, "[onCreate] IGW_200 SET @@@@@@@@@@@@@@@@@@@@");
 		}
@@ -2439,7 +2436,6 @@ public class MainActivity extends WpadActivity {
 				nChildCnt++;
 			}
 
-			//for test
 			arrayList.add(API_Menu.SubMenuCtrl.Name_ParkingDoor);
 			nChildCnt++;
 
@@ -3681,7 +3677,6 @@ public class MainActivity extends WpadActivity {
 				jsonObject.accumulate("reason", reason);
 				jsonObject.accumulate("position", position);
 				//제어
-				//제어
 				if (reason == Common.JSON.REASON.Control) {
 					dataJsonObject.accumulate("number", roomNumber);
 					dataJsonObject.accumulate("category", category);
@@ -3711,7 +3706,6 @@ public class MainActivity extends WpadActivity {
 				socket.connect(ipep);
 				ObjectOutputStream outputStream = new ObjectOutputStream(socket.getOutputStream());
 				outputStream.writeObject(json);
-				Log.d("ClientThread", "서버로 보냄.");
 				ObjectInputStream inputStream = new ObjectInputStream(socket.getInputStream());
 				StringBuffer stb = new StringBuffer();
 				String data;
@@ -3748,7 +3742,7 @@ public class MainActivity extends WpadActivity {
 
 				final String response = String.valueOf(stb);
 
-				Log.d("ClientThread", "response=" + response);
+				DebugLogOutput("ClientThread response=" + response);
 
 				final String finalResponse = response;
 				Message message = handler.obtainMessage();
@@ -3760,7 +3754,7 @@ public class MainActivity extends WpadActivity {
 
 			} catch (Exception e) {
 				e.printStackTrace();
-				Log.e("ClientThread", "error=" + e);
+				DebugLogOutput("ClientThread Exception error=" + e);
 			}
 		}
 	}

+ 0 - 3
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_aircon/KnxSystemAirconMainScreen.java

@@ -297,9 +297,6 @@ public class KnxSystemAirconMainScreen extends WpadScreen {
         mContext = context;
         DebugLogOutput("[Create] - Step1 : Data Create");
         OPERATION_MODE = operationMode;
-        //for test
-        //OPERATION_MODE = Common.MODE_BUSINESS_SAMPLE;
-        //
         if (roomNameList==null) mRoomNameList = mDefaultRoomNameList;
         else mRoomNameList = roomNameList;
 

+ 0 - 4
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_aircon/KnxSystemAirconPopupScreen.java

@@ -121,10 +121,6 @@ public class KnxSystemAirconPopupScreen extends WpadScreen {
         DebugLogOutput("[Create] - Step1 : Data Create");
         OPERATION_MODE = operationMode;
 
-        //for test
-        //OPERATION_MODE = Common.MODE_BUSINESS_SAMPLE;
-        //
-
         mData = new Data();
 
         if (wallpadStatusData == null) wallpadStatusData = new WallpadStatusData(context);

+ 0 - 3
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_aircon/SystemAirconPopupScreen.java

@@ -94,9 +94,6 @@ public class SystemAirconPopupScreen extends WpadScreen {
         DebugLogOutput("[Create] - Step1 : Data Create");
         OPERATION_MODE = operationMode;
 
-        //madeinLab for test
-        //OPERATION_MODE = Common.MODE_BUSINESS_SAMPLE;
-
         mData = new Data();
 
         Intent intent = super.getScreenIntent();

+ 0 - 3
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/KnxSystemAirconPopupTestScreen.java

@@ -239,9 +239,6 @@ public class KnxSystemAirconPopupTestScreen extends WpadScreen {
         DebugLogOutput("[Create] - Step1 : Data Create");
         OPERATION_MODE = operationMode;
 
-        //madeinLab for test
-        //OPERATION_MODE = Common.MODE_BUSINESS_SAMPLE;
-
         mData = new Data();
 
         Intent intent = super.getScreenIntent();

+ 0 - 3
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/SystemAirconPopupTestScreen.java

@@ -204,9 +204,6 @@ public class SystemAirconPopupTestScreen extends WpadScreen {
         mContext = context;
         OPERATION_MODE = operationMode;
 
-        //madeinLab for test
-        //OPERATION_MODE = Common.MODE_BUSINESS_SAMPLE;
-
         mData = new Data();
 
         Intent intent = super.getScreenIntent();

+ 0 - 2
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/SystemAirconTestScreen.java

@@ -491,8 +491,6 @@ public class SystemAirconTestScreen extends WpadScreen {
             DebugLogOutput("[Create] - Step1 : Data Create");
             mContext = context;
             OPERATION_MODE = operationMode;
-            //for test
-            //OPERATION_MODE = Common.MODE_BUSINESS_SAMPLE;
             bLouverUsage = checkLouverUsage();
 
             //OPERATION_MODE = Common.MODE_BUSINESS_SAMPLE;

+ 0 - 2
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_purity/PurityPopupScreen.java

@@ -87,8 +87,6 @@ public class PurityPopupScreen extends WpadScreen {
         // 1. Data Create
         DebugLogOutput("[Create] - Step1 : Data Create");
         OPERATION_MODE = operationMode;
-        //madeinLab for test
-        //OPERATION_MODE = Common.MODE_BUSINESS_SAMPLE;
         mData = new Data();
         Intent intent = super.getScreenIntent();
         if (intent != null) {

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

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

+ 1 - 0
WallPadMultiControlService/src/main/java/kr/co/icontrols/wallpadmulticontrolservice/Common.java

@@ -89,6 +89,7 @@ public final class Common
             public final static int MobileRegister      = 3;
             public final static int MobileDelete        = 4;
             public final static int DeviceInfo          = 5;
+            public final static int MobileSync          = 6;
         }
     }
 }

+ 23 - 9
WallPadMultiControlService/src/main/java/kr/co/icontrols/wallpadmulticontrolservice/DataSenderService.java

@@ -48,6 +48,7 @@ import java.net.Socket;
 import java.sql.Timestamp;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.List;
 import java.util.Random;
 
 import kr.co.icontrols.wallpadmulticontrolservice.control.AirconControl;
@@ -57,6 +58,7 @@ import kr.co.icontrols.wallpadmulticontrolservice.control.KnxAirconControl;
 import kr.co.icontrols.wallpadmulticontrolservice.control.LightControl;
 import kr.co.icontrols.wallpadmulticontrolservice.control.VentiControl;
 import kr.co.icontrols.wallpadmulticontrolservice.data.BasicData;
+import kr.co.icontrols.wallpadmulticontrolservice.data.MobileSyncData;
 import kr.co.icontrols.wallpadmulticontrolservice.data.RequestData;
 import kr.co.icontrols.wallpadmulticontrolservice.Common.JSON;
 import kr.co.icontrols.wallpadsupport.Version;
@@ -340,7 +342,8 @@ public class DataSenderService extends Service {
                         outputStream.writeObject(json);
                         outputStream.close();
                         Log.d("ServerThread", "result 보냄 : " + result);
-                    } else if (data != null && !data.trim().equals("") && basicData.getType().equalsIgnoreCase("request") && basicData.getReason() == JSON.REASON.Status) {
+                    }
+                    else if (data != null && !data.trim().equals("") && basicData.getType().equalsIgnoreCase("request") && basicData.getReason() == JSON.REASON.Status) {
                         try {
                             JSONObject result = updateRequest(basicData.getMenu(), basicData.getKind(), basicData.getPosition());
                             Random rand = new Random();
@@ -474,7 +477,8 @@ public class DataSenderService extends Service {
                             outputStream.close();
                             e.printStackTrace();
                         }
-                    } else if (data != null && !data.trim().equals("") && basicData.getType().equalsIgnoreCase("request") && basicData.getMenu() == JSON.MENU.PASSWORD) {
+                    }
+                    else if (data != null && !data.trim().equals("") && basicData.getType().equalsIgnoreCase("request") && basicData.getMenu() == JSON.MENU.PASSWORD) {
                         //비밀번호 변경 요청
                         int result = passwordChangeRequest(basicData.getNumber());
                         String json = "";
@@ -488,7 +492,7 @@ public class DataSenderService extends Service {
                         JSONObject jsonObject = new JSONObject();
 
                         try {
-                            jsonObject.accumulate("type", "controlResponse");
+                            jsonObject.accumulate("type", "passwordResponse");
                             jsonObject.accumulate("timestamp", millToDate(System.currentTimeMillis()));
                             jsonObject.accumulate("ip", myIP);
                             jsonObject.accumulate("menu", basicData.getMenu());
@@ -502,9 +506,10 @@ public class DataSenderService extends Service {
                         outputStream.writeObject(json);
                         outputStream.close();
                         Log.d("ServerThread", "result 보냄 : " + result);
-                    } else if (data != null && !data.trim().equals("") && basicData.getType().equalsIgnoreCase("request") && basicData.getMenu() == JSON.MENU.MOBILE) {
+                    }
+                    else if (data != null && !data.trim().equals("") && basicData.getType().equalsIgnoreCase("request") && basicData.getMenu() == JSON.MENU.MOBILE) {
                         //모바일 등록 관련
-                        int result = updateMobile(basicData.getReason(), basicData.getName(), basicData.getId());
+                        int result = updateMobile(allObject, basicData.getReason(), basicData.getName(), basicData.getId());
                         String json = "";
                         String resultStr = "ok";
                         if (result == JSON.RESULT.Success) {
@@ -516,7 +521,7 @@ public class DataSenderService extends Service {
                         JSONObject jsonObject = new JSONObject();
 
                         try {
-                            jsonObject.accumulate("type", "controlResponse");
+                            jsonObject.accumulate("type", "mobileResponse");
                             jsonObject.accumulate("timestamp", millToDate(System.currentTimeMillis()));
                             jsonObject.accumulate("ip", myIP);
                             jsonObject.accumulate("menu", basicData.getMenu());
@@ -1949,14 +1954,15 @@ public class DataSenderService extends Service {
         }
     }
 
-    private int updateMobile(int reason, String name, String id) {
+    private int updateMobile(JSONObject requestData, int reason, String name, String id) {
+        Gson gson = new Gson();
         try {
             WallpadMobileDeviceData wallpadMobileDeviceData = new WallpadMobileDeviceData(getApplicationContext());
-            if (reason == JSON.REASON.MobileRegister) {
+            if (reason == JSON.REASON.MobileRegister && name!=null && id!=null) {
                 //모바일 등록
                 //DB에 저장 필요
                 wallpadMobileDeviceData.Register(id, name);
-            } else if (reason == JSON.REASON.MobileDelete) {
+            } else if (reason == JSON.REASON.MobileDelete && id!=null) {
                 //모바일 전체 삭제
                 if (id.equals("all")) {
                     wallpadMobileDeviceData.UnRegisterAll();
@@ -1965,6 +1971,14 @@ public class DataSenderService extends Service {
                 else {
                     wallpadMobileDeviceData.DeleteEachUid(id);
                 }
+            } else if (reason == JSON.REASON.MobileSync) {
+                //모바일 동기화
+                wallpadMobileDeviceData.UnRegisterAll();
+                MobileSyncData reqData = gson.fromJson(requestData.toString(), MobileSyncData.class);
+                for(int i = 0; i<reqData.getArrayData().size() ; i++){
+                    String[] mobileData = reqData.getArrayData().get(i).split("\\|");
+                    wallpadMobileDeviceData.Register(mobileData[1], mobileData[0]+"@");
+                }
             }
             wallpadMobileDeviceData.closeDB();
         } catch (Exception e) {

+ 18 - 0
WallPadMultiControlService/src/main/java/kr/co/icontrols/wallpadmulticontrolservice/data/MobileSyncData.java

@@ -0,0 +1,18 @@
+package kr.co.icontrols.wallpadmulticontrolservice.data;
+
+import java.util.ArrayList;
+
+public class MobileSyncData {
+    private ArrayList<String> arrayData;
+    public ArrayList<String> getArrayData() {
+        return arrayData;
+    }
+
+    @Override
+    public String toString() {
+        return "MobileSyncData{" +
+                "arrayData='" + arrayData +
+                '}';
+    }
+
+}