diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/org/traccar/location/BaseLocationProvider.java | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/org/traccar/location/BaseLocationProvider.java b/src/org/traccar/location/BaseLocationProvider.java index d6eddc1cd..c422ed50a 100644 --- a/src/org/traccar/location/BaseLocationProvider.java +++ b/src/org/traccar/location/BaseLocationProvider.java @@ -15,6 +15,7 @@ */ package org.traccar.location; +import org.traccar.Config; import org.traccar.Context; import org.traccar.model.Event; @@ -25,20 +26,24 @@ public abstract class BaseLocationProvider implements LocationProvider { @Override public void getLocation(Map<String, Object> attributes, LocationProviderCallback callback) { + Config config = Context.getConfig(); + Number mcc = (Number) attributes.get(Event.KEY_MCC); - if (mcc == null) { - mcc = Context.getConfig().getInteger("location.mcc"); + if (mcc == null && config.hasKey("location.mcc")) { + mcc = config.getInteger("location.mcc"); } Number mnc = (Number) attributes.get(Event.KEY_MNC); - if (mnc == null) { - mnc = Context.getConfig().getInteger("location.mnc"); + if (mnc == null && config.hasKey("location.mnc")) { + mnc = config.getInteger("location.mnc"); } Number lac = (Number) attributes.get(Event.KEY_LAC); Number cid = (Number) attributes.get(Event.KEY_CID); - getLocation(mcc.intValue(), mnc.intValue(), lac.longValue(), cid.longValue(), callback); + if (mcc != null && mnc != null && lac != null && cid != null) { + getLocation(mcc.intValue(), mnc.intValue(), lac.longValue(), cid.longValue(), callback); + } } |