mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-10 15:11:59 +01:00
Simplify DateTimeType handling for XmlTv
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
This commit is contained in:
parent
b186639344
commit
aae1224658
@ -25,7 +25,6 @@ import org.openhab.binding.xmltv.internal.handler.ChannelHandler;
|
|||||||
import org.openhab.binding.xmltv.internal.handler.XmlTVHandler;
|
import org.openhab.binding.xmltv.internal.handler.XmlTVHandler;
|
||||||
import org.openhab.binding.xmltv.internal.jaxb.Tv;
|
import org.openhab.binding.xmltv.internal.jaxb.Tv;
|
||||||
import org.openhab.core.config.core.Configuration;
|
import org.openhab.core.config.core.Configuration;
|
||||||
import org.openhab.core.i18n.TimeZoneProvider;
|
|
||||||
import org.openhab.core.thing.Bridge;
|
import org.openhab.core.thing.Bridge;
|
||||||
import org.openhab.core.thing.Thing;
|
import org.openhab.core.thing.Thing;
|
||||||
import org.openhab.core.thing.ThingTypeUID;
|
import org.openhab.core.thing.ThingTypeUID;
|
||||||
@ -35,7 +34,6 @@ import org.openhab.core.thing.binding.ThingHandler;
|
|||||||
import org.openhab.core.thing.binding.ThingHandlerFactory;
|
import org.openhab.core.thing.binding.ThingHandlerFactory;
|
||||||
import org.osgi.service.component.annotations.Activate;
|
import org.osgi.service.component.annotations.Activate;
|
||||||
import org.osgi.service.component.annotations.Component;
|
import org.osgi.service.component.annotations.Component;
|
||||||
import org.osgi.service.component.annotations.Reference;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The {@link XmlTVHandlerFactory} is responsible for creating things and thing
|
* The {@link XmlTVHandlerFactory} is responsible for creating things and thing
|
||||||
@ -47,12 +45,10 @@ import org.osgi.service.component.annotations.Reference;
|
|||||||
@Component(configurationPid = "binding.xmltv", service = ThingHandlerFactory.class)
|
@Component(configurationPid = "binding.xmltv", service = ThingHandlerFactory.class)
|
||||||
public class XmlTVHandlerFactory extends BaseThingHandlerFactory {
|
public class XmlTVHandlerFactory extends BaseThingHandlerFactory {
|
||||||
private final XMLInputFactory xif = XMLInputFactory.newFactory();
|
private final XMLInputFactory xif = XMLInputFactory.newFactory();
|
||||||
private final TimeZoneProvider timeZoneProvider;
|
|
||||||
private final Unmarshaller unmarshaller;
|
private final Unmarshaller unmarshaller;
|
||||||
|
|
||||||
@Activate
|
@Activate
|
||||||
public XmlTVHandlerFactory(final @Reference TimeZoneProvider timeZoneProvider) throws JAXBException {
|
public XmlTVHandlerFactory() throws JAXBException {
|
||||||
this.timeZoneProvider = timeZoneProvider;
|
|
||||||
this.unmarshaller = JAXBContext.newInstance(Tv.class).createUnmarshaller();
|
this.unmarshaller = JAXBContext.newInstance(Tv.class).createUnmarshaller();
|
||||||
xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
|
xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
|
||||||
xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);
|
xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);
|
||||||
@ -88,7 +84,7 @@ public class XmlTVHandlerFactory extends BaseThingHandlerFactory {
|
|||||||
if (XMLTV_FILE_BRIDGE_TYPE.equals(thingTypeUID)) {
|
if (XMLTV_FILE_BRIDGE_TYPE.equals(thingTypeUID)) {
|
||||||
return new XmlTVHandler((Bridge) thing, xif, unmarshaller);
|
return new XmlTVHandler((Bridge) thing, xif, unmarshaller);
|
||||||
} else if (XMLTV_CHANNEL_THING_TYPE.equals(thingTypeUID)) {
|
} else if (XMLTV_CHANNEL_THING_TYPE.equals(thingTypeUID)) {
|
||||||
return new ChannelHandler(thing, timeZoneProvider.getTimeZone());
|
return new ChannelHandler(thing);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
@ -16,8 +16,6 @@ import static org.openhab.binding.xmltv.internal.XmlTVBindingConstants.*;
|
|||||||
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.time.ZonedDateTime;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@ -65,11 +63,9 @@ public class ChannelHandler extends BaseThingHandler {
|
|||||||
private State mediaIcon = UnDefType.UNDEF;
|
private State mediaIcon = UnDefType.UNDEF;
|
||||||
|
|
||||||
public final List<Programme> programmes = new ArrayList<>();
|
public final List<Programme> programmes = new ArrayList<>();
|
||||||
private final ZoneId zoneId;
|
|
||||||
|
|
||||||
public ChannelHandler(Thing thing, ZoneId zoneId) {
|
public ChannelHandler(Thing thing) {
|
||||||
super(thing);
|
super(thing);
|
||||||
this.zoneId = zoneId;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -224,8 +220,7 @@ public class ChannelHandler extends BaseThingHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateDateTimeChannel(ChannelUID channelUID, Instant instant) {
|
private void updateDateTimeChannel(ChannelUID channelUID, Instant instant) {
|
||||||
ZonedDateTime zds = ZonedDateTime.ofInstant(instant, zoneId);
|
updateState(channelUID, new DateTimeType(instant));
|
||||||
updateState(channelUID, new DateTimeType(zds));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private QuantityType<?> getDurationInSeconds(Instant from, Instant to) {
|
private QuantityType<?> getDurationInSeconds(Instant from, Instant to) {
|
||||||
|
Loading…
Reference in New Issue
Block a user