Explorar el Código

[ManagerSetting]
1. 자동일괄소등해제 설정 추가
- 실제로 사용할 필요 없음 특정현장 이슈 때문에 추가
2. 터치펌웨어 버전표시 개선
- 기존 대외향과 동일하게 변경

jglee hace 4 meses
padre
commit
0e81f67384

+ 9 - 0
ManagerSetting/src/main/java/com/artncore/managersetting/dao/MainDatabaseManager.java

@@ -175,6 +175,8 @@ public class MainDatabaseManager {
     public static final int SETTING_ITEM_SUB_DEVICE_KITCHEN_EM_CTRL_OPTION      = SETTING_ITEM_TYPE_BASE + 222; //각실EM제어옵션
     public static final int SETTING_ITEM_SUB_DEVICE_EMS_PROTOCOL                  = SETTING_ITEM_TYPE_BASE + 223; //EMS 프로토콜(원격검침)
     public static final int SETTING_ITEM_SUB_DEVICE_SHADING                     = SETTING_ITEM_TYPE_BASE + 224; //전동커튼
+    //jglee - 2024.10.16 자동일괄소등해제
+    public static final int SETTING_ITEM_SUB_DEVICE_AUTOALLIGHT                     = SETTING_ITEM_TYPE_BASE + 225; //전동커튼
 
     public static final String[] SUB_DEVICE_ITEM_ID = {
             "가스밸브"
@@ -302,6 +304,7 @@ public class MainDatabaseManager {
             , "각실EM제어옵션"
             , "EMS프로토콜"
             , "전동커튼"
+            , "자동일괄소등해제"
     };
 
 
@@ -1377,6 +1380,7 @@ public class MainDatabaseManager {
             case SETTING_ITEM_SUB_DEVICE_KITCHEN_EM_CTRL_OPTION:
             case SETTING_ITEM_SUB_DEVICE_EMS_PROTOCOL:
             case SETTING_ITEM_SUB_DEVICE_SHADING:
+            case SETTING_ITEM_SUB_DEVICE_AUTOALLIGHT:
                 result = SUB_DEVICE_ITEM_ID[itemType - SETTING_ITEM_SUB_DEVICE_GAS];
                 break;
         }
@@ -2083,6 +2087,11 @@ public class MainDatabaseManager {
                     case SETTING_ITEM_SUB_DEVICE_SHADING:
                         devInfo = "1(1:전동커튼(사용안함))";
                         break;
+
+                    //jglee - 2024.10.16
+                    case SETTING_ITEM_SUB_DEVICE_AUTOALLIGHT:
+                        devInfo = "1(1:자동일괄소등해제(사용함))";
+                        break;
                 }
             }
         }

+ 401 - 8
ManagerSetting/src/main/java/com/artncore/managersetting/ui/fragments/QueryVersionInfoFragment.java

@@ -105,8 +105,6 @@ public class QueryVersionInfoFragment extends Fragment {
 
     public final int INFO_TYPE_MODEL_NAME = INFO_TYPE_VERSION_BASE + 210;
 
-    //jglee 터치 펌웨어 버전 추가
-    public final int INFO_TOUCH_IC_FW_VER = INFO_TYPE_VERSION_BASE + 212;
 
     private Activity mActivity;
     private MainDatabaseManager mMainDatabaseManager;
@@ -120,6 +118,23 @@ public class QueryVersionInfoFragment extends Fragment {
     private IGW200dAPI iGW200dAPI = null;
     private WallPadAPI m_wpapi = null;
 
+    private String mstrBSPVersion = "";
+
+    //jglee 터치 펌웨어 버전 상세하게 나눔(major)
+    public final int INFO_TOUCH_IC_FW_MAJOR = INFO_TYPE_VERSION_BASE + 216;
+    //jglee 터치 펌웨어 버전 상세하게 나눔(minor)
+    public final int INFO_TOUCH_IC_FW_MINOR = INFO_TYPE_VERSION_BASE + 217;
+    //jglee 터치 펌웨어 버전 상세하게 나눔(release)
+    public final int INFO_TOUCH_IC_FW_RELEASE = INFO_TYPE_VERSION_BASE + 218;
+
+    //jglee 터치 펌웨어 버전 타입(1 : zinitix, 2 : gt9xx , 0 : sunix
+    public final int INFO_TOUCH_IC_FW_TYPE = INFO_TYPE_VERSION_BASE + 219;
+
+    public final int INFO_TOUCH_IC_DWID_VER = INFO_TYPE_VERSION_BASE + 212;
+
+    //jglee 터치 펌웨어 버전 구딕스 버전 정보(gt9xx)
+    public final int INFO_TOUCH_IC_FW_Gt9xx_VERSION = INFO_TYPE_VERSION_BASE + 220;
+
     // constructor
     public QueryVersionInfoFragment() {
     }
@@ -261,7 +276,74 @@ public class QueryVersionInfoFragment extends Fragment {
         showVersionInfo(INFO_TYPE_NEWS_VER);
 
         //jglee - 터치 펌웨어 버전 추가
-        showVersionInfo(INFO_TOUCH_IC_FW_VER);
+        //showVersionInfo(INFO_TOUCH_IC_FW_VER);
+
+        //jglee - 2022.11.14 해당 버전은 모델명 대내 또는 대외 BSP 버전이 2022년 11월 이상일 경우만 사용 가능
+        //jglee - 2022.11.14 BSP 버전 확인(터치 펌웨어 버전 조회 할 수 있는 버전인지 확인이 필요함
+        boolean isCheckTouchFWVersio = false;
+        if(mstrBSPVersion!=null && mstrBSPVersion.contains("."))
+        {
+            //2022.11.29 jglee - split 오류 수정
+//            String[] BSPVersion_Split = mstrBSPVersion.split("\\.");
+//            if(BSPVersion_Split!=null && BSPVersion_Split.length == 4)
+//            {
+//                try{
+//                    int BSP_year =Integer.parseInt(BSPVersion_Split[0].trim());
+//                    if(BSP_year == 2022)
+//                    {
+//                        int BSP_month =Integer.parseInt(BSPVersion_Split[1].trim());
+//                        if(BSP_month >= 11) isCheckTouchFWVersio = true;
+//                    }
+//                    else if(BSP_year >= 2022) isCheckTouchFWVersio = true;
+//                }
+//                catch (Exception e)
+//                {
+//
+//                }
+//            }
+
+            isCheckTouchFWVersio = isCheckBSPVersion(mstrBSPVersion, 2022, 11);
+
+        }
+
+        //jglee - 2023.06.22 터치 펌웨어 버전 조회 가능한 BSP 확인(2023.07월부터 가능)
+        boolean isCheckTouchFWVersioandTouchType = false;
+        isCheckTouchFWVersioandTouchType = isCheckBSPVersion(mstrBSPVersion, 2023, 6);
+
+        //jglee - 2023.06.22 BSP 버전 2023.06월 이후인지 확인
+        if(isCheckTouchFWVersioandTouchType)
+        {
+            //jglee - 2023.06.22 해당되는 터치 타입 확인
+            showVersionInfo(INFO_TOUCH_IC_FW_TYPE);
+            int touchType = getTouchICFWType();
+            //zinitix이면 기존과 동일하게 표시
+            if(touchType== 1)
+            {
+                showVersionInfo(INFO_TOUCH_IC_DWID_VER);
+                showVersionInfo(INFO_TOUCH_IC_FW_MAJOR);
+                showVersionInfo(INFO_TOUCH_IC_FW_MINOR);
+                showVersionInfo(INFO_TOUCH_IC_FW_RELEASE);
+            }
+            //gt9xx이면 버전 정보 표시
+            else if(touchType == 2)
+            {
+                showVersionInfo(INFO_TOUCH_IC_FW_Gt9xx_VERSION);
+            }
+        }
+        else
+        {
+            //jglee - 2022.10.31 터치 펌웨어 버전 상세히 나눔
+            //jglee - 2022.11.15 1030은 제외
+            if((ModelType != Version.MODEL_TYPE.IHN_1030_I) && (ModelType == Version.MODEL_TYPE.IHN_D101 || ModelType == Version.MODEL_TYPE.IHN_D101_I || ModelType == Version.MODEL_TYPE.IHN_D101_I_OCF
+                    || ModelType == Version.MODEL_TYPE.IHN_D101K || ModelType == Version.MODEL_TYPE.IHN_D101K_I || ModelType == Version.MODEL_TYPE.IHN_1010GL_I_6410 || ModelType == Version.MODEL_TYPE.IHN_1010GL_I_2443 || isCheckTouchFWVersio))
+            {
+                showVersionInfo(INFO_TOUCH_IC_DWID_VER);
+                showVersionInfo(INFO_TOUCH_IC_FW_MAJOR);
+                showVersionInfo(INFO_TOUCH_IC_FW_MINOR);
+                showVersionInfo(INFO_TOUCH_IC_FW_RELEASE);
+            }
+        }
+
 
         if (ModelType == Version.MODEL_TYPE.IHN_1020GL)
         {
@@ -286,6 +368,64 @@ public class QueryVersionInfoFragment extends Fragment {
 
     }
 
+    public int getTouchICFWType() {
+        int nVer = 0;
+        try {
+            // TO DO
+            if (Build.VERSION.SDK_INT > 23) {
+                V40IF mV40IF = new V40IF();
+                mV40IF.WpdInterfaceOpen();
+                nVer = mV40IF.WpdInterfaceControl(0xF205, 1);
+                mV40IF.WpdInterfaceClose();
+            }
+            else {
+                nVer = -1;
+            }
+        } catch (RuntimeException re) {
+            Log.e(TAG, "[RuntimeException] getTouchICFWHWIDVersion()");
+            Log.e(TAG, re.toString());
+            nVer = -1;
+        } catch (Exception e) {
+            Log.e(TAG, "[Exception] getTouchICFWHWIDVersion()");
+            LogUtil.errorLogInfo("", TAG, e);
+            nVer = -1;
+        }
+
+        return nVer;
+    }
+
+
+    //jglee - 2023.06.22 1330 기준으로 zinitix 와 gt9xx 구분하기 위해 BSP 버전을 확인하는 함수 추가
+    private boolean isCheckBSPVersion(String BSPVersion, int CheckVersioYear, int CheckVersionMonth)
+    {
+        boolean isCheckTouchFWVersio = false;
+
+        if(BSPVersion!=null && BSPVersion.contains("."))
+        {
+            //2022.11.29 jglee - split 오류 수정
+            String[] BSPVersion_Split = BSPVersion.split("\\.");
+            if(BSPVersion_Split!=null && BSPVersion_Split.length == 4)
+            {
+                try{
+                    int BSP_year =Integer.parseInt(BSPVersion_Split[0].trim());
+                    if(BSP_year == CheckVersioYear)
+                    {
+                        int BSP_month =Integer.parseInt(BSPVersion_Split[1].trim());
+                        if(BSP_month >= CheckVersionMonth) isCheckTouchFWVersio = true;
+                    }
+                    else if(BSP_year >= CheckVersioYear) isCheckTouchFWVersio = true;
+                }
+                catch (Exception e)
+                {
+
+                }
+            }
+
+        }
+
+        return isCheckTouchFWVersio;
+    }
+
 
     // show VersionInfo
     private void showVersionInfo(int type) {
@@ -322,7 +462,8 @@ public class QueryVersionInfoFragment extends Fragment {
 
             case INFO_TYPE_OS:
                 title += mActivity.getString(R.string.version_info_os_ver);
-                result.append(title + getOSVersion());
+                mstrBSPVersion = getOSVersion();
+                result.append(title + mstrBSPVersion);
                 break;
 
             case INFO_TYPE_APPS:
@@ -487,11 +628,88 @@ public class QueryVersionInfoFragment extends Fragment {
 
                 break;
 
-            //jglee - 텀치 펌웨어 버전 표시
-            case INFO_TOUCH_IC_FW_VER:
-                title += mActivity.getString(R.string.version_info_touch_ic_fw_ver);
-                result.append(title + getTouchICFWVersion());
+            //2023.06.22 jglee - 터치 타입
+            case INFO_TOUCH_IC_FW_TYPE:
+                title += mActivity.getString(R.string.version_info_touch_ic_type);
+                //여기서 한글로 표시
+                String versionName = "";
+                int touchType = getTouchICFWType();
+                //1이면 zinitix, 2이면 Gt9xx, 0이면 기본값 sunix
+                if(touchType== 1)
+                {
+                    versionName = "zinitix";
+                }
+                else if(touchType == 2)
+                {
+                    versionName = "gt9xx";
+                }
+                else if(touchType == 0)
+                {
+                    versionName = "sunix";
+                }
+                else
+                {
+                    versionName = "none(" +touchType + ")" ;
+                }
+                result.append(title + versionName);
+                break;
+
+
+            //2023.06.22 jglee - 구딕스 버전
+            case INFO_TOUCH_IC_FW_Gt9xx_VERSION:
+                title += mActivity.getString(R.string.version_info_touch_ic_gt9xx);
+                result.append(title + getTouchICFWgt9xxVersion());
+                break;
+
+
+            //2022.10.31 jglee - 터치 하드웨어 아이디
+            case INFO_TOUCH_IC_DWID_VER:
+                title += mActivity.getString(R.string.version_info_touch_ic_hwid_ver);
+                result.append(title + getTouchICFWHWIDVersion());
+                break;
+
+            //2022.10.31 jglee - 터치 하드웨어 펌웨어 버전 ex>메이저
+            case INFO_TOUCH_IC_FW_MAJOR:
+                title += mActivity.getString(R.string.version_info_touch_ic_fw_major_ver);
+                String convert_major = "-1";
+
+                int major = getTouchICFWMajorVersion();
+
+                if(major >= 0)
+                    convert_major = String.format("0x%02X", major);
+
+                result.append(title +  convert_major);
+                break;
+
+            //2022.10.31 jglee - 터치 하드웨어 펌웨어 버전 ex>마이너
+            case INFO_TOUCH_IC_FW_MINOR:
+                title += mActivity.getString(R.string.version_info_touch_ic_fw_minor_ver);
+                String convert_minor = "-1";
+
+                int minor = getTouchICFWMinorVersion();
+
+                if(minor >= 0)
+                    convert_minor = String.format("0x%02X", minor);
+
+                result.append(title +  convert_minor  );
+                break;
+
+            //2022.10.31 jglee - 터치 하드웨어 펌웨어 버전 ex>릴리즈
+            case INFO_TOUCH_IC_FW_RELEASE:
+                title += mActivity.getString(R.string.version_info_touch_ic_fw_rlease_ver);
+                String convert_release = "-1";
+
+                int relase = getTouchICFWReleaseVersion();
+
+                //2022.11.11 BSP 버전이 최신이 아닐 경우, 이전 릴리즈 정보 가져오도록  수정
+                if(relase >= 0)
+                    convert_release = String.format("0x%02X", relase);
+                else
+                    convert_release = getTouchICFWVersion();
+
+                result.append(title +  convert_release);
                 result.append("\n");
+                break;
 
 
             default:
@@ -501,6 +719,181 @@ public class QueryVersionInfoFragment extends Fragment {
         mTV_Result.append(result + "\n");
     }
 
+
+    //jglee - 2022.10.31 터치 펌웨어 버전 새로운 표기 방식 적용
+    //HW ID
+    /**
+     * 터치펌웨어 하드웨어 아이디 알아오기
+     * @return
+     */
+    public String getTouchICFWHWIDVersion() {
+        StringBuilder result = new StringBuilder();
+        try {
+            // TO DO
+            if (Build.VERSION.SDK_INT > 23) {
+                V40IF mV40IF = new V40IF();
+                mV40IF.WpdInterfaceOpen();
+                int nVer = 0;
+                nVer = mV40IF.WpdInterfaceControl(0xF201, 1);
+                mV40IF.WpdInterfaceClose();
+                if (nVer < 0) result.append("None(" + nVer + ")");
+                else result.append(nVer);
+            }
+            else {
+                result.append("Not support");
+            }
+        } catch (RuntimeException re) {
+            Log.e(TAG, "[RuntimeException] getTouchICFWHWIDVersion()");
+            Log.e(TAG, re.toString());
+            result.append("RuntimeException");
+        } catch (Exception e) {
+            Log.e(TAG, "[Exception] getTouchICFWHWIDVersion()");
+            LogUtil.errorLogInfo("", TAG, e);
+            result.append("Exception");
+        }
+
+        return result.toString();
+    }
+
+
+
+    //jglee - 2023.06.22 구딕스 버전 가져오기
+    /**
+     * 구딕스 버전 가져오기
+     * @return 구딕스 버전
+     */
+    public String getTouchICFWgt9xxVersion() {
+        StringBuilder result = new StringBuilder();
+        try {
+            // TO DO
+            if (Build.VERSION.SDK_INT > 23) {
+                V40IF mV40IF = new V40IF();
+                mV40IF.WpdInterfaceOpen();
+                int nVer = 0;
+                nVer = mV40IF.WpdInterfaceControl(0xF206, 1);
+                mV40IF.WpdInterfaceClose();
+                if (nVer < 0) result.append("None(" + nVer + ")");
+                else
+                {
+                    //jglee - 2023.06.27 버전표시 변경 Hex(Decimal)
+                    String hex = String.format("0x%02X", nVer);
+                    result.append(hex + "(" + nVer + ")");
+                }
+            }
+            else {
+                result.append("Not support");
+            }
+        } catch (RuntimeException re) {
+            Log.e(TAG, "[RuntimeException] getTouchICFWHWIDVersion()");
+            Log.e(TAG, re.toString());
+            result.append("RuntimeException");
+        } catch (Exception e) {
+            Log.e(TAG, "[Exception] getTouchICFWHWIDVersion()");
+            LogUtil.errorLogInfo("", TAG, e);
+            result.append("Exception");
+        }
+
+        return result.toString();
+    }
+
+
+    //jglee - 2022.10.31 터치 펌웨어 버전 새로운 표기 방식 적용
+    //HW ID + Major + Minor + Release
+    /**
+     * 터치 펌웨어 매이저버전
+     * @return
+     */
+    public int getTouchICFWMajorVersion() {
+        int nVer = -1;
+        try {
+            // TO DO
+            if (Build.VERSION.SDK_INT > 23) {
+                V40IF mV40IF = new V40IF();
+                mV40IF.WpdInterfaceOpen();
+                nVer = mV40IF.WpdInterfaceControl(0xF202, 1);
+                mV40IF.WpdInterfaceClose();
+            }
+            else {
+                nVer = -2;
+            }
+        } catch (RuntimeException re) {
+            Log.e(TAG, "[RuntimeException] getTouchICFWMajorVersion()");
+            Log.e(TAG, re.toString());
+            nVer = -3;
+        } catch (Exception e) {
+            Log.e(TAG, "[Exception] getTouchICFWMajorVersion()");
+            LogUtil.errorLogInfo("", TAG, e);
+            nVer = -4;
+        }
+
+        return nVer;
+    }
+
+    //jglee - 2022.10.31 터치 펌웨어 버전 새로운 표기 방식 적용
+    //HW ID + Major + Minor + Release
+    /**
+     * 터치 펌웨어 마이너버전
+     * @return
+     */
+    public int getTouchICFWMinorVersion() {
+        int nVer = -1;
+        try {
+            // TO DO
+            if (Build.VERSION.SDK_INT > 23) {
+                V40IF mV40IF = new V40IF();
+                mV40IF.WpdInterfaceOpen();
+                nVer = mV40IF.WpdInterfaceControl(0xF203, 1);
+                mV40IF.WpdInterfaceClose();
+            }
+            else {
+                nVer = -2;
+            }
+        } catch (RuntimeException re) {
+            Log.e(TAG, "[RuntimeException] getTouchICFWMinorVersion()");
+            Log.e(TAG, re.toString());
+            nVer = -3;
+        } catch (Exception e) {
+            Log.e(TAG, "[Exception] getTouchICFWMinorVersion()");
+            LogUtil.errorLogInfo("", TAG, e);
+            nVer = -4;
+        }
+
+        return nVer;
+    }
+
+    //jglee - 2022.10.31 터치 펌웨어 버전 새로운 표기 방식 적용
+    //HW ID + Major + Minor + Release
+    /**
+     * 터치펌웨어 릴리즈 버전
+     * @return
+     */
+    public int getTouchICFWReleaseVersion() {
+        int nVer = -1;
+        try {
+            // TO DO
+            if (Build.VERSION.SDK_INT > 23) {
+                V40IF mV40IF = new V40IF();
+                mV40IF.WpdInterfaceOpen();
+                nVer = mV40IF.WpdInterfaceControl(0xF204, 1);
+                mV40IF.WpdInterfaceClose();
+            }
+            else {
+                nVer = -2;
+            }
+        } catch (RuntimeException re) {
+            Log.e(TAG, "[RuntimeException] getTouchICFWReleaseVersion()");
+            Log.e(TAG, re.toString());
+            nVer = -3;
+        } catch (Exception e) {
+            Log.e(TAG, "[Exception] getTouchICFWReleaseVersion()");
+            LogUtil.errorLogInfo("", TAG, e);
+            nVer = -4;
+        }
+
+        return nVer;
+    }
+
+
     // get Touch IC FW Version
     public String getTouchICFWVersion() {
         StringBuilder result = new StringBuilder();

+ 33 - 2
ManagerSetting/src/main/java/com/artncore/managersetting/ui/fragments/SettingDetailFunctionFragment.java

@@ -160,6 +160,9 @@ public class SettingDetailFunctionFragment extends Fragment
 
     public final int DETAIL_TYPE_EMS_PROTOCOL_USE =                               DETAIL_TYPE_BASE + 65;
 
+    //jglee - 2024.10.16 현산용 기준 자동 일괄소등 해제 기능 사용안함
+    public final int DETAIL_TYPE_AUTO_ALLOFF_USE =                               DETAIL_TYPE_BASE + 66;
+
     private Activity mActivity;
     private WallPadAPI mWallPadAPI;
     private MainDatabaseManager mMainDatabaseManager;
@@ -444,6 +447,9 @@ public class SettingDetailFunctionFragment extends Fragment
 
         //EMS 프로토콜
         initEMSProtocolUseSet();
+
+        //jglee - 2024.10.16 일괄소등 해제 자동 설정 사용 유무(기본값 사용함)
+        initHDCAutoAllLightOff();//EMSProtocolUseSet();
     }
 
     private void initEscapeLadderDownSend()
@@ -879,10 +885,29 @@ public class SettingDetailFunctionFragment extends Fragment
         listString.add(mActivity.getString(R.string.do_not_used));
 
         switchButton.setText(listString);
+        boolean initValue = mMainDatabaseManager.isUsedSettingDataSubDev(MainDatabaseManager.SETTING_ITEM_SUB_DEVICE_EMS_PROTOCOL);
+        switchButton.switchEnabled(initValue);
+    }
 
-        WallpadDeviceSet devset = new WallpadDeviceSet(getContext());
+    /**
+     * jglee - 2024.10.16 현산 일괄소등 자동 해제 기능 사용 유무
+     * 스마트 스위치, 에너지미터, 거실릴레이을 같이 사용하는 경우 일괄소등 시 자동으로 해제되는 이슈 해결을 위해 추가
+     */
+    private void initHDCAutoAllLightOff()
+    {
+        int type = DETAIL_TYPE_AUTO_ALLOFF_USE;
+        String typeName = mActivity.getString(R.string.detail_function_auto_alllightoff);
 
-        boolean initValue = mMainDatabaseManager.isUsedSettingDataSubDev(MainDatabaseManager.SETTING_ITEM_SUB_DEVICE_EMS_PROTOCOL);
+        SwitchButton switchButton = (SwitchButton)mRootView.findViewById(R.id.btn_switch_auto_alllight);
+        switchButton.setSwitchButtonChangedListener(this, type, typeName);
+
+        List<String> listString = new ArrayList<String>();
+        listString.add(mActivity.getString(R.string.do_used));
+        listString.add(mActivity.getString(R.string.do_not_used));
+
+        switchButton.setText(listString);
+
+        boolean initValue = mMainDatabaseManager.isUsedSettingDataSubDev(MainDatabaseManager.SETTING_ITEM_SUB_DEVICE_AUTOALLIGHT);
         switchButton.switchEnabled(initValue);
     }
 
@@ -3024,6 +3049,11 @@ public class SettingDetailFunctionFragment extends Fragment
                 mMainDatabaseManager.updateSetUsedToSubDeviceSwitchButtonOnOff(MainDatabaseManager.SETTING_ITEM_SUB_DEVICE_REMOTE_CALL, position);
                 break;
 
+            //jglee - 2024.10.16 자동일괄소등 해제 기능 사용 여부
+            case DETAIL_TYPE_AUTO_ALLOFF_USE:
+                mMainDatabaseManager.updateSetUsedToSubDeviceSwitchButtonOnOff(MainDatabaseManager.SETTING_ITEM_SUB_DEVICE_AUTOALLIGHT, position);
+                break;
+
             case DETAIL_TYPE_NEWSERVER:
                 //단지서버 방식 변경
 //                mMainDatabaseManager.updateSetUsedToSubDeviceSwitchButtonOnOff(MainDatabaseManager.SETTING_ITEM_SUB_DEVICE_NEWSERVER, position);
@@ -4316,6 +4346,7 @@ public class SettingDetailFunctionFragment extends Fragment
             case DETAIL_TYPE_CONSTRUCTION_SPECIAL_FUNC:
             case DETAIL_TYPE_ELEVATOR:
             case DETAIL_TYPE_EMS_PROTOCOL_USE:
+            case DETAIL_TYPE_AUTO_ALLOFF_USE:
                 updateSetUsedToSubDevice(type, position, itemName);
 
                 MainApplication.getApplication().setReboot();

+ 33 - 0
ManagerSetting/src/main/res/layout/setting_detail_container_gle.xml

@@ -2078,6 +2078,39 @@ android:background="#EFEFEE"
 
             </RelativeLayout>
 
+            <ImageView
+                android:layout_width="match_parent"
+                android:layout_height="1px"
+                android:background="#DDDDDD" />
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                >
+
+                <TextView
+                    android:id="@+id/tv_auto_alllight"
+                    android:layout_width="wrap_content"
+                    android:layout_height="100dp"
+                    android:layout_alignParentTop="true"
+                    android:layout_marginLeft="10dp"
+                    android:gravity="center|left"
+                    android:textSize="30sp"
+                    android:textColor="#000000"
+                    android:text="@string/detail_function_auto_alllightoff"
+                    android:maxLines="1"
+                    />
+
+                <com.artncore.managersetting.ui.SwitchButton
+                    android:id="@+id/btn_switch_auto_alllight"
+                    android:layout_width="wrap_content"
+                    android:layout_height="100dp"
+                    android:layout_alignParentRight="true"
+                    android:layout_marginRight="20dp"
+                    android:gravity="center"
+                    />
+            </RelativeLayout>
+
         </LinearLayout>
     </ScrollView>
 

+ 28 - 0
ManagerSetting/src/main/res/layout/setting_detail_container_sa.xml

@@ -2476,6 +2476,34 @@ android:background="#EFEFEE"
 
             </RelativeLayout>
 
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                >
+
+                <TextView
+                    android:id="@+id/tv_auto_alllight"
+                    android:layout_width="wrap_content"
+                    android:layout_height="100dp"
+                    android:layout_alignParentTop="true"
+                    android:layout_marginLeft="10dp"
+                    android:gravity="center|left"
+                    android:textSize="30sp"
+                    android:textColor="#000000"
+                    android:text="@string/detail_function_auto_alllightoff"
+                    android:maxLines="1"
+                    />
+
+                <com.artncore.managersetting.ui.SwitchButton
+                    android:id="@+id/btn_switch_auto_alllight"
+                    android:layout_width="wrap_content"
+                    android:layout_height="100dp"
+                    android:layout_alignParentRight="true"
+                    android:layout_marginRight="20dp"
+                    android:gravity="center"
+                    />
+            </RelativeLayout>
+
         </LinearLayout>
     </ScrollView>
 

+ 10 - 0
ManagerSetting/src/main/res/values/strings.xml

@@ -175,6 +175,13 @@
     <string name="version_info_model_name_ver">모델명 : </string>
     <string name="version_info_model_name_from_bsp_ver">(from BSP)</string>
     <string name="version_info_touch_ic_fw_ver">터치IC FW 버전 : </string>
+    <string name="version_info_touch_ic_type">터치IC 타입 : </string>
+    <string name="version_info_touch_ic_gt9xx">gt9xx 버전 : </string>
+    <string name="version_info_touch_ic_hwid_ver">터치IC HWID 버전 : </string>
+    <string name="version_info_touch_ic_fw_major_ver">터치IC FW Major 버전 : </string>
+    <string name="version_info_touch_ic_fw_minor_ver">터치IC FW Minor 버전 : </string>
+    <string name="version_info_touch_ic_fw_rlease_ver">터치IC FW Release 버전 : </string>
+
 
     <string name="guard_info_jurisdictional_guard">관할경비실 : </string>
     <string name="guard_info_front_gate_guard">정문 경비시 : </string>
@@ -657,6 +664,9 @@
 
     <string name="detail_function_kakao_home_set">카카오홈</string>
     <string name="detail_function_ems_metering">EMS프로토콜사용</string>
+
+    <string name="detail_function_auto_alllightoff">자동일괄소등해제</string>
+
     <!--
     <string name="detail_function_kakao_set">카카오홈 설정</string>
     -->