]> git.basschouten.com Git - openhab-addons.git/commitdiff
[openuv] Fix internationalization of discovery result (#11500)
authorlolodomo <lg.hc@free.fr>
Sun, 5 Dec 2021 08:39:51 +0000 (09:39 +0100)
committerGitHub <noreply@github.com>
Sun, 5 Dec 2021 08:39:51 +0000 (09:39 +0100)
* [openuv] Fix internationalization of discovery result

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
bundles/org.openhab.binding.openuv/src/main/java/org/openhab/binding/openuv/internal/OpenUVHandlerFactory.java
bundles/org.openhab.binding.openuv/src/main/java/org/openhab/binding/openuv/internal/discovery/OpenUVDiscoveryService.java
bundles/org.openhab.binding.openuv/src/main/java/org/openhab/binding/openuv/internal/handler/OpenUVBridgeHandler.java

index fe483a09ea1d266bdd6be0668aea67994259ea7c..1d7bb529c33cf2fd60f1383c1e27dcc261892908 100644 (file)
@@ -20,8 +20,10 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
 import org.openhab.binding.openuv.internal.handler.OpenUVBridgeHandler;
 import org.openhab.binding.openuv.internal.handler.OpenUVReportHandler;
+import org.openhab.core.i18n.LocaleProvider;
 import org.openhab.core.i18n.LocationProvider;
 import org.openhab.core.i18n.TimeZoneProvider;
+import org.openhab.core.i18n.TranslationProvider;
 import org.openhab.core.thing.Bridge;
 import org.openhab.core.thing.Thing;
 import org.openhab.core.thing.ThingTypeUID;
@@ -48,12 +50,17 @@ import com.google.gson.JsonDeserializer;
 public class OpenUVHandlerFactory extends BaseThingHandlerFactory {
 
     private final LocationProvider locationProvider;
+    private final TranslationProvider i18nProvider;
+    private final LocaleProvider localeProvider;
     private final Gson gson;
 
     @Activate
     public OpenUVHandlerFactory(@Reference TimeZoneProvider timeZoneProvider,
-            @Reference LocationProvider locationProvider) {
+            @Reference LocationProvider locationProvider, @Reference TranslationProvider i18nProvider,
+            @Reference LocaleProvider localeProvider) {
         this.locationProvider = locationProvider;
+        this.i18nProvider = i18nProvider;
+        this.localeProvider = localeProvider;
         this.gson = new GsonBuilder()
                 .registerTypeAdapter(ZonedDateTime.class,
                         (JsonDeserializer<ZonedDateTime>) (json, type, jsonDeserializationContext) -> ZonedDateTime
@@ -72,7 +79,7 @@ public class OpenUVHandlerFactory extends BaseThingHandlerFactory {
         ThingTypeUID thingTypeUID = thing.getThingTypeUID();
 
         return APIBRIDGE_THING_TYPE.equals(thingTypeUID)
-                ? new OpenUVBridgeHandler((Bridge) thing, locationProvider, gson)
+                ? new OpenUVBridgeHandler((Bridge) thing, locationProvider, i18nProvider, localeProvider, gson)
                 : LOCATION_REPORT_THING_TYPE.equals(thingTypeUID) ? new OpenUVReportHandler(thing) : null;
     }
 }
index b192db432729a8264305ebb5c53f3fe15ef58fc5..374f31fa64210ba96941f79a9262e8e93d072d64 100644 (file)
@@ -50,7 +50,10 @@ public class OpenUVDiscoveryService extends AbstractDiscoveryService implements
     @Override
     public void setThingHandler(ThingHandler handler) {
         if (handler instanceof OpenUVBridgeHandler) {
-            this.bridgeHandler = (OpenUVBridgeHandler) handler;
+            OpenUVBridgeHandler localHandler = (OpenUVBridgeHandler) handler;
+            this.bridgeHandler = localHandler;
+            this.i18nProvider = localHandler.getI18nProvider();
+            this.localeProvider = localHandler.getLocaleProvider();
         }
     }
 
index f39e85b9c395ba718a5252d5c7d23bf46a5a4da5..6388e0a287729e1c3d36abb4f0a569607847dfbf 100644 (file)
@@ -29,7 +29,9 @@ import org.openhab.binding.openuv.internal.config.BridgeConfiguration;
 import org.openhab.binding.openuv.internal.discovery.OpenUVDiscoveryService;
 import org.openhab.binding.openuv.internal.json.OpenUVResponse;
 import org.openhab.binding.openuv.internal.json.OpenUVResult;
+import org.openhab.core.i18n.LocaleProvider;
 import org.openhab.core.i18n.LocationProvider;
+import org.openhab.core.i18n.TranslationProvider;
 import org.openhab.core.io.net.http.HttpUtil;
 import org.openhab.core.library.types.PointType;
 import org.openhab.core.thing.Bridge;
@@ -61,13 +63,18 @@ public class OpenUVBridgeHandler extends BaseBridgeHandler {
     private final Properties header = new Properties();
     private final Gson gson;
     private final LocationProvider locationProvider;
+    private final TranslationProvider i18nProvider;
+    private final LocaleProvider localeProvider;
 
     private @Nullable ScheduledFuture<?> reconnectJob;
 
-    public OpenUVBridgeHandler(Bridge bridge, LocationProvider locationProvider, Gson gson) {
+    public OpenUVBridgeHandler(Bridge bridge, LocationProvider locationProvider, TranslationProvider i18nProvider,
+            LocaleProvider localeProvider, Gson gson) {
         super(bridge);
         this.gson = gson;
         this.locationProvider = locationProvider;
+        this.i18nProvider = i18nProvider;
+        this.localeProvider = localeProvider;
     }
 
     @Override
@@ -149,4 +156,12 @@ public class OpenUVBridgeHandler extends BaseBridgeHandler {
     public @Nullable PointType getLocation() {
         return locationProvider.getLocation();
     }
+
+    public TranslationProvider getI18nProvider() {
+        return i18nProvider;
+    }
+
+    public LocaleProvider getLocaleProvider() {
+        return localeProvider;
+    }
 }