From 00a3438dc36a58af254c96d18b9f677916a99549 Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Mon, 28 Jul 2014 04:58:21 +0100 Subject: [PATCH] fixed possible NPE --- .../synchroniser/SynchroniserService.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/org/geometerplus/android/fbreader/synchroniser/SynchroniserService.java b/src/org/geometerplus/android/fbreader/synchroniser/SynchroniserService.java index 669b69126..5bb53611a 100644 --- a/src/org/geometerplus/android/fbreader/synchroniser/SynchroniserService.java +++ b/src/org/geometerplus/android/fbreader/synchroniser/SynchroniserService.java @@ -62,8 +62,6 @@ public class SynchroniserService extends Service implements IBookCollection.List } } - private final ConnectivityManager myConnectivityManager = - (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE); private final SyncOptions mySyncOptions = new SyncOptions(); private static final class SyncronizationDisabledException extends RuntimeException { @@ -140,11 +138,23 @@ public class SynchroniserService extends Service implements IBookCollection.List case never: return false; case always: - return myConnectivityManager.getActiveNetworkInfo().isConnected(); + { + final ConnectivityManager cm = + (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE); + return cm != null && cm.getActiveNetworkInfo().isConnected(); + } case viaWifi: { - final NetworkInfo info = myConnectivityManager.getActiveNetworkInfo(); - return info.isConnected() && info.getType() == ConnectivityManager.TYPE_WIFI; + final ConnectivityManager cm = + (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE); + if (cm == null) { + return false; + } + final NetworkInfo info = cm.getActiveNetworkInfo(); + return + info != null && + info.isConnected() && + info.getType() == ConnectivityManager.TYPE_WIFI; } } }