diff --git a/sdk/src/java/cyanogenmod/weather/CMWeatherManager.java b/sdk/src/java/cyanogenmod/weather/CMWeatherManager.java index a5f0dd24..b351f8a6 100644 --- a/sdk/src/java/cyanogenmod/weather/CMWeatherManager.java +++ b/sdk/src/java/cyanogenmod/weather/CMWeatherManager.java @@ -246,6 +246,8 @@ public class CMWeatherManager { */ public void registerWeatherServiceProviderChangeListener( @NonNull WeatherServiceProviderChangeListener listener) { + if (sWeatherManagerService == null) return; + synchronized (mProviderChangedListeners) { if (mProviderChangedListeners.contains(listener)) { throw new IllegalArgumentException("Listener already registered"); @@ -267,6 +269,8 @@ public class CMWeatherManager { */ public void unregisterWeatherServiceProviderChangeListener( @NonNull WeatherServiceProviderChangeListener listener) { + if (sWeatherManagerService == null) return; + synchronized (mProviderChangedListeners) { if (!mProviderChangedListeners.contains(listener)) { throw new IllegalArgumentException("Listener was never registered"); @@ -287,6 +291,8 @@ public class CMWeatherManager { * @return the service's label */ public String getActiveWeatherServiceProviderLabel() { + if (sWeatherManagerService == null) return null; + try { return sWeatherManagerService.getActiveWeatherServiceProviderLabel(); } catch(RemoteException e){