From 46bed1698db0f663c3950bff294ad1e984e41859 Mon Sep 17 00:00:00 2001 From: Luis Vidal Date: Thu, 16 Jun 2016 17:25:29 -0700 Subject: cmsdk: Prevent NPE in CMWeatherManager Verify that we have an instance of to the weather manager service before we try to register/unregister a listener or query the current weather provider. Change-Id: Iec09073615f85626c6f64e4a55758aae52231ca8 --- sdk/src/java/cyanogenmod/weather/CMWeatherManager.java | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sdk') diff --git a/sdk/src/java/cyanogenmod/weather/CMWeatherManager.java b/sdk/src/java/cyanogenmod/weather/CMWeatherManager.java index a5f0dd2..b351f8a 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){ -- cgit v1.1