]> git.basschouten.com Git - openhab-addons.git/commitdiff
Change status channel from hash map values to state description options. (#11739)
authorStewart Cossey <stewart.cossey@gmail.com>
Thu, 9 Dec 2021 08:00:18 +0000 (21:00 +1300)
committerGitHub <noreply@github.com>
Thu, 9 Dec 2021 08:00:18 +0000 (09:00 +0100)
Signed-off-by: Stewart Cossey <stewart.cossey@gmail.com>
bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPProductUsageFeatures.java
bundles/org.openhab.binding.hpprinter/src/main/java/org/openhab/binding/hpprinter/internal/api/HPStatus.java
bundles/org.openhab.binding.hpprinter/src/main/resources/OH-INF/thing/channel-types.xml

index 41207f4598706b0340a393f8a7929275c893e9d1..24ba4e77cd439afb10811f6e8d7b112b4ec9499d 100644 (file)
@@ -65,7 +65,7 @@ public class HPProductUsageFeatures {
             final String inkName = currInk.getElementsByTagName("dd:MarkerColor").item(0).getTextContent();
             final String consumeType = currInk.getElementsByTagName("dd:ConsumableTypeEnum").item(0).getTextContent();
 
-            if (consumeType.equalsIgnoreCase("printhead")) {
+            if ("printhead".equalsIgnoreCase(consumeType)) {
                 continue;
             }
 
index 19773d6eba057efe43237b3a68e8d597387f4c78..c9b9c8686b33a3c794b42b794f3ea006fb882a5e 100644 (file)
@@ -12,9 +12,6 @@
  */
 package org.openhab.binding.hpprinter.internal.api;
 
-import java.util.HashMap;
-import java.util.Map;
-
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
 import org.w3c.dom.Document;
@@ -30,8 +27,6 @@ import org.w3c.dom.NodeList;
 public class HPStatus {
     public static final String ENDPOINT = "/DevMgmt/ProductStatusDyn.xml";
 
-    private static final Map<String, String> STATUS_MESSAGES = initializeStatus();
-
     private final String printerStatus;
     private final boolean trayEmptyOrOpen;
 
@@ -44,7 +39,7 @@ public class HPStatus {
             Element element = (Element) nodes.item(i);
             String statusCategory = element.getElementsByTagName("pscat:StatusCategory").item(0).getTextContent();
             if (!"genuineHP".equals(statusCategory) && !"trayEmpty".equals(statusCategory)) {
-                localPrinterStatus = STATUS_MESSAGES.getOrDefault(statusCategory, statusCategory);
+                localPrinterStatus = statusCategory;
             }
             if ("trayEmpty".equals(statusCategory)) {
                 localTrayEmptyOrOpen = true;
@@ -54,20 +49,6 @@ public class HPStatus {
         printerStatus = localPrinterStatus;
     }
 
-    private static Map<String, String> initializeStatus() {
-        Map<String, String> statusMap = new HashMap<>();
-
-        statusMap.put("processing", "Printing...");
-        statusMap.put("scanProcessing", "Scanning...");
-        statusMap.put("inPowerSave", "Power Save");
-        statusMap.put("ready", "Idle");
-        statusMap.put("initializing", "Initializing...");
-        statusMap.put("closeDoorOrCover", "Door/Cover Open");
-        statusMap.put("inkSystemInitializing", "Loading Ink...");
-        statusMap.put("shuttingDown", "Shutting Down...");
-        return statusMap;
-    }
-
     public boolean getTrayEmptyOrOpen() {
         return trayEmptyOrOpen;
     }
index 72054a69be92e499904b6943d07c12ef440e6a1f..a628b51010b2e49c348a91ac25adb0120b3f01a8 100644 (file)
                <item-type>String</item-type>
                <label>Status</label>
                <description>Printer Status</description>
-               <state readOnly="true"/>
+               <state readOnly="true">
+                       <options>
+                               <option value="ready">Idle</option>
+                               <option value="processing">Printing</option>
+                               <option value="scanProcessing">Scanning</option>
+                               <option value="inPowerSave">Power Save</option>
+                               <option value="initializing">Initializing</option>
+                               <option value="closeDoorOrCover">Door/Cover</option>
+                               <option value="inkSystemInitializing">Loading Ink</option>
+                               <option value="shuttingDown">Shutting Down</option>
+                               <option value="replaceCartridgeOut">Cartridge Depleted</option>
+                       </options>
+               </state>
        </channel-type>
 
        <channel-type id="readonlyswitch" advanced="true">