ソースを参照

[WallPadMain]
1. App Ver. 갱신
- 2021.12.13.01
2. 현산향일괄소등제어기 대응기능 추가
- 일괄소등 화면 상태 동기화 기능 추가 (BR수신 처리)
- 아이콘 출력기능 개선 ('현산향일괄소등제어기' 설정시, 일괄소등 아이콘 노출)
3. 최신 WallPadAPI 적용
- API Ver.: 2021.12.13.01

[WallPadAPI]
1. App Ver. 갱신
- 2021.12.13.01
2. 현산향 일괄소등 제어기 대응 기능 추가
- 일괄소등 기본설정을 '현산향일괄소등제어기'로 설정

Changwoo Nam 4 年 前
コミット
71b34dfdf5

BIN
WallPadMain/libs/WallPadAPI.jar


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

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

+ 38 - 6
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/popup/CollectiveLightCTRL.java

@@ -1,6 +1,7 @@
 package kr.co.icontrols.wallpadmain.popup;
 
 import com.artncore.WallPadDataMgr.WallpadStatusData;
+import com.artncore.commons.define;
 import com.artncore.wallpadapi.WallPadAPI;
 
 import android.content.Context;
@@ -87,7 +88,9 @@ public class CollectiveLightCTRL extends WpadScreen {
             ViewRegistration(layout, TXT_TITLE, getPosition(ID.POPUPS.COLLECTIVELIGHTCTRL.ELEMENTS.TEXTS.TITLE).X, getPosition(ID.POPUPS.COLLECTIVELIGHTCTRL.ELEMENTS.TEXTS.TITLE).Y);
             TXT_TITLE.setText(strTitle);
         }
-        
+
+        registorBR_AllLightCtrl(true, 0);
+
         displayCollectiveLightStatus();
 	}
 
@@ -95,6 +98,7 @@ public class CollectiveLightCTRL extends WpadScreen {
 	protected void onClose() {
 		super.onClose();
 		Log.d(TAG, "[END   - Screen] ********************************************");
+        registorBR_AllLightCtrl(false, 0);
 	}
 	
 	private void displayCollectiveLightStatus() {
@@ -169,13 +173,41 @@ public class CollectiveLightCTRL extends WpadScreen {
 		return super.addBrActionFilter(action);
 	}
 
+    /**
+     * 디바이스에 알림 BR 을 등록한다. (멀티스위치)
+     * @return (int) - >=0 : 성공, <0 : 실패
+     */
+    private int registorBR_AllLightCtrl(boolean OnOff, int nDevKind) {
+        if (OnOff) {
+            super.addBrActionFilter(define.NOTIFY_ACNAME);
+        }
+        else {
+            super.removeBrActionFilter(define.NOTIFY_ACNAME);
+        }
+        return 0;
+    }
+
 	@Override
 	protected void onBrReceive(Intent intent) {
-		// TODO Auto-generated method stub
-		super.onBrReceive(intent);
-		Common.DebugLog("--------------------onBrReceive ---> intent.getAction(): " + intent.getAction());
-		
-	}
+        // TODO Auto-generated method stub
+        super.onBrReceive(intent);
+        String ActionName = intent.getAction();
+        if (ActionName.equals(define.NOTIFY_ACNAME)) {
+            int kind = intent.getIntExtra(define.NOTIBR_KIND, 0);
+            Log.i(TAG, "[onBrReceive] ActionName [" + ActionName + "], kind [" + kind + "]");
+            switch (kind) {
+                case define.NOTIFY_ALL_LIGHT_OFF:
+                    // 일괄소등 설정 (조명 OFF)
+                    syncBTNAllLightOff(true);
+                    break;
+
+                case define.NOTIFY_ALL_LIGHT_ON:
+                    // 일괄소등 해제 (조명 ON)
+                    syncBTNAllLightOff(false);
+                    break;
+            }
+        }
+    }
     
 	private void Exit() {
 		((PopupActivity)(super.getContext())).finish();

+ 4 - 0
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/util/IconManager.java

@@ -528,6 +528,10 @@ public class IconManager {
                     mIconInfoTable.addIconInfo(ID.ICONS.MENUS.MAIN_LIGHTS_OUT.getID(), ID.ICONS.MENUS.MAIN_LIGHTS_OUT.getNameKR(), ID.LINKEDSCREEN.OtherFunc.IGAL_CTRL,
                             R.drawable.icon_ctrl_lightsout_normal, R.drawable.icon_ctrl_lightsout_pressed, R.drawable.icon_ctrl_lightsout_pressed, R.drawable.icon_ctrl_lightsout_pressed);
                 }
+                else if (naAllLightOffEnable[1] == WallpadDeviceSet.BATCH_TYPE_HDC_BATCHSWITCH) {
+                    mIconInfoTable.addIconInfo(ID.ICONS.MENUS.MAIN_LIGHTS_OUT.getID(), ID.ICONS.MENUS.MAIN_LIGHTS_OUT.getNameKR(), ID.LINKEDSCREEN.OtherFunc.IGAL_CTRL,
+                            R.drawable.icon_ctrl_lightsout_normal, R.drawable.icon_ctrl_lightsout_pressed, R.drawable.icon_ctrl_lightsout_pressed, R.drawable.icon_ctrl_lightsout_pressed);
+                }
                 else {
                     Log.w(TAG, "[setWallpadFunction] Not supported devicetype!!  naAllLightOffEnable[1] = " + naAllLightOffEnable[1]);
                 }